SQLite'i arendajad arendavad paralleelkirjutamise toega HC-tree taustaprogrammi

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

Lisa kommentaar