SQLite'i projekti arendajad on alustanud eksperimentaalse HCtree taustaprogrammi testimist, mis toetab reatasemel lukustamist ja pakub päringute töötlemisel kõrget paralleelsuse taset. Uue taustaprogrammi eesmärk on parandada SQLite'i kasutamise efektiivsust klient-server süsteemides, mis peavad töötlema suure hulga samaaegseid andmebaasi kirjutamispäringuid.
SQLite'is andmete salvestamiseks natiivselt kasutatavad b-puu struktuurid ei ole seda tüüpi koormuse jaoks mõeldud, mis piirab SQLite'i kirjutamist ainult ühte lõime. Eksperimendi korras hakkasid arendajad välja töötama alternatiivset lahendust, mis kasutab salvestamiseks HC-puu struktuure, mis sobivad rohkem kirjutamisoperatsioonide paralleelseerimiseks.
Mitme toimingu samaaegseks käitamiseks kasutab HCtree kirje tehingute jaotusmehhanismi, mis kasutab lehetaseme lukustamist ja sarnaneb MVCC-ga (mitme versiooni samaaegsuse juhtimine), kuid kasutab lehekomplektide asemel võtmetel ja võtmevahemikel põhinevaid tehingukontrolle. Lugemis- ja kirjutamistoimingud tehakse seoses andmebaasi hetktõmmisega, mille muudatused muutuvad põhiandmebaasis nähtavaks alles pärast tehingu sooritamist.
Kliendid saavad kasutada kolme avatud tehingutoimingut:
- “ALGUS” – tehingud ei võta arvesse teiste klientide juurdepääsuandmeid. Kui tehingu sees tehakse kirjutamistoiminguid, saab tehingu sooritada ainult siis, kui selle täitmise ajal andmebaasis muid kirjutustoiminguid ei olnud.
- "ALUSTAGE SAMAGA" - tehingud koguvad teavet teiste klientide juurdepääsu kohta. Kui tehingu sees tehakse kirjutamistoiminguid, saab tehingu siduda, kui andmebaasis on pärast hetktõmmise loomist tehtud muid tehinguid.
- "ALGUS EKSKLUSIIVNE" - pärast tehingu avamist blokeerib see teiste tehingute toimingud kuni selle lõpuleviimiseni.
HCtree toetab ülem-alluv replikatsiooni, mis võimaldab teil migreerida tehingud teise andmebaasi ja hoida teisesed andmebaasid sünkroonis esmase andmebaasiga. HCtree eemaldab ka andmebaasi suuruse piirangu – 32-bitiste andmelehe identifikaatorite asemel kasutab HCtree 48-bitiseid, mis suurendab andmebaasi maksimaalset suurust 16 tebibaidilt 1 eksbibaidile (miljoni tebibaiti). Eeldatakse, et SQLite'i jõudlus HCtree taustaprogrammiga ei ole madalam kui klassikalisel ühe lõimega taustaprogrammil. HCtree toega SQLite'i kliendid pääsevad juurde nii HC-puupõhistele andmebaasidele kui ka SQLite'i pärandandmebaasidele.
Allikas: opennet.ru