SQLite arendajad arendavad HC-tree tagapinda paralleelsete kirjutamise toimingute toetamisega.

SQLite projekti arendajad on alustanud eksperimentaalsete HCtree taustade testimist, mis toetavad ridade tasemel lukustamist ja tagavad kõrge taseme töötlemise paralleelsuse päringute käitlemisel. Uue tausta siht on suurendada SQLite tõhusust kliendiserveri süsteemides, kus tuleb töödelda suurt hulka samal ajal toimuvaid andmebaasi kirjutamise päringuid.

Algusest peale SQLite-s andmete salvestamiseks kasutatud b-tree struktuurid ei ole mõeldud selliseks koormuseks, mis piirab SQLite kirjutamise võimalusi ainult ühes niidis. Eksperimendi raames hakkasid arendajad arendama alternatiivset lahendust, mis kasutab salvestamiseks HC-tree struktuure, mis on rohkem sobilikud kirjutamise toimingute paralleelseks käitlemiseks.

HCtree-s kirjutamisoperatsioonide samal ajal täitmiseks kasutatakse tehingute jagamise mehhanismi, mis rakendab lehekülgede tasemel lukustusi ning on sarnane MVCC-le (mitme versiooni konkurentsi juhtimine), kuid kasutab tehingute kontrollimiseks võtmete ja võtmevahemike põhiseid kontseptsioone lehekülgede kogumite asemel. Lugemis- ja kirjutamisoperatsioonid viiakse ellu andmebaasi hetkeseisu põhjal, mille muutused on peamises andmebaasis nähtavad alles pärast tehingu lõpetamist.

Kliendid saavad kasutada kolme tehingute avamise operatsiooni:

  • «BEGIN» – tehingud ei arvesta teiste klientide juurdepääsu andmeid. Kui tehingu käigus toimub kirjutamisoperatsioone, saab tehingut kinnitada ainult siis, kui selle teostamise ajal ei ole andmebaasis toimunud teisi kirjutamisoperatsioone.
  • «BEGIN CONCURRENT» – tehingud koguvad teavet teiste klientide juurdepääsu kohta. Kui tehingu käigus toimub kirjutamisoperatsioone, saab tehingut kinnitada, kui andmebaasis on selle hetkeseisu loomise hetkest alates kinnitatud teisi tehinguid.
  • «BEGIN EXCLUSIVE» – pärast tehingu avamist lukustab see teised tehingute operatsioonid kuni oma lõpetamiseni.

HCtree toetab "master-slave" stiilis replikatsiooni, mis võimaldab edastada tehingud teise andmebaasi ja hoida teisi andmebaase sünkroonis põhjaandmebaasiga. HCtree kaotab andmebaasi suuruse piiri — 32-bitiste andmelehekülgede identifikaatorite asemel kasutatakse HCtree-s 48-bitiseid, mis suurendab andmebaasi maksimaalset suurust 16 tebibaitilt 1 eksbibaitini (miljon tebibaiti). Oodatakse, et SQLite jõudlus HCtree taustal ei jää alla klassikalisele ühetaktilisele taustale. HCtree toe saanud SQLite kliendid saavad pöörduda nii HC-tree struktuuri põhinevate andmebaaside kui ka vanade SQLite andmebaaside poole.

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster