SQLite izstrādātāji izstrādā HC-tree aizmugursistēmu ar atbalstu paralēlai rakstīšanai

SQLite projektu izstrādātāji ir sākuši pārbaudīt eksperimentālu HCtree aizmugursistēmu, kas atbalsta rindu līmeņa bloķēšanu un nodrošina augstu paralēlizācijas līmeni, apstrādājot vaicājumus. Jaunā aizmugursistēma ir paredzēta, lai uzlabotu SQLite izmantošanas efektivitāti klienta-servera sistēmās, kurām ir jāapstrādā liels skaits vienlaicīgu rakstīšanas pieprasījumu datu bāzē.

B-koku struktūras, kas sākotnēji tiek izmantotas SQLite datu glabāšanai, nav paredzētas šāda veida slodzei, kas ierobežo SQLite rakstīt tikai vienā pavedienā. Eksperimenta veidā izstrādātāji sāka izstrādāt alternatīvu risinājumu, kas glabāšanai izmanto HC-tree struktūras, kas ir vairāk piemērotas rakstīšanas darbību paralēlināšanai.

Lai vienlaikus varētu veikt vairākas darbības, HCtree ieraksts izmanto transakciju sadalīšanas mehānismu, kas izmanto lapas līmeņa bloķēšanu un ir līdzīgs MVCC (vairāku versiju vienlaicīguma kontrolei), bet izmanto darījumu pārbaudes, kuru pamatā ir atslēgas un atslēgu diapazoni, nevis lapu kopas. Lasīšanas un rakstīšanas operācijas tiek veiktas saistībā ar datu bāzes momentuzņēmumu, kura izmaiņas galvenajā datu bāzē kļūst redzamas tikai pēc darījuma pabeigšanas.

Klienti var izmantot trīs atvērtās transakcijas operācijas:

  • “BEGIN” – darījumos netiek ņemti vērā citu klientu piekļuves dati. Ja transakcijas ietvaros tiek veiktas rakstīšanas darbības, transakciju var veikt tikai tad, ja tās izpildes laikā datu bāzē nav bijušas citas rakstīšanas darbības.
  • "SĀKT VIENLAIDĪGU" - darījumi vāc informāciju par citu klientu piekļuvi. Ja darījuma ietvaros tiek veiktas rakstīšanas darbības, transakciju var veikt, ja kopš momentuzņēmuma izveides datu bāzē ir veiktas citas transakcijas.
  • “BEGIN EXCLUSIVE” - pēc darījuma atvēršanas tas bloķē operācijas no citiem darījumiem, līdz tas ir pabeigts.

HCtree atbalsta galvenā-vergu replikāciju, kas ļauj migrēt transakcijas uz citu datu bāzi un sekundārās datu bāzes sinhronizēt ar primāro datu bāzi. HCtree arī atceļ datu bāzes izmēra ierobežojumu - 32 bitu datu lapu identifikatoru vietā HCtree izmanto 48 bitu identifikatorus, kas palielina datu bāzes maksimālo izmēru no 16 tebibaitiem līdz 1 eksbibaitam (miljons tebibaitu). Paredzams, ka SQLite ar HCtree aizmugursistēmu veiktspēja nebūs zemāka par klasisko viena pavediena aizmugursistēmu. SQLite klienti ar HCtree atbalstu varēs piekļūt gan uz HC-tree balstītām datu bāzēm, gan mantotajām SQLite datu bāzēm.

Avots: opennet.ru

Pievieno komentāru