SQLite'i arendajad arendavad paralleelkirjutamise toega HC-tree taustaprogrammi

SQLite'i projekti arendajad on alustanud eksperimentaalse HCtree-taustaprogrammi testimist, mis toetab rea tasemel lukustamist ja pakub päringute töötlemisel kõrgetasemelist paralleelsust. Uue taustaprogrammi eesmärk on parandada SQLite'i tõhusust klient-server süsteemides, mis käsitlevad suurt hulka samaaegseid andmebaasi kirjutamispäringuid.

Algselt SQLite'is andmesalvestuseks kasutatud b-puu struktuurid ei ole seda tüüpi töökoormuse jaoks loodud, mis piirab SQLite'i ühelõimeliste kirjutamistega. Eksperimendina hakkasid arendajad välja töötama alternatiivset lahendust, kasutades salvestamiseks HC-puu struktuure, mis sobivad paremini kirjutamisoperatsioonide paralleelseks muutmiseks.

Mitme operatsiooni samaaegse teostamise korraldamiseks kasutab HCtree tehingute jaotamise mehhanismi, mis kasutab lehekülje tasemel lukke ja sarnaneb MVCC-ga (mitme versiooni samaaegsuse kontroll), kuid kasutab tehingute kontrollimist leheküljekomplektide asemel võtmete ja võtmevahemike põhjal. Lugemis- ja kirjutamisoperatsioone teostatakse andmebaasi hetktõmmise suhtes, mille muudatused muutuvad peaandmebaasis nähtavaks alles pärast tehingu lõpuleviimist.

Kliendid saavad kasutada kolme tehingu avamise toimingut:

  • "BEGIN" — tehingud ei arvesta teiste klientide juurdepääsuandmeid. Kui tehingu sees teostatakse kirjutamisoperatsioone, saab tehingu kinnitada ainult siis, kui selle täitmise ajal ei teostatud andmebaasis ühtegi teist kirjutamisoperatsiooni.
  • "ALGAB SAMAAEGSELT" – tehingud koguvad teavet teiste klientide juurdepääsu kohta. Kui tehingu sees tehakse kirjutamisoperatsioone, saab tehingu kinnitada, kui pärast hetktõmmise loomist on andmebaasi kinnitatud muid tehinguid.
  • "AINULT ALGUSEGA" - pärast tehingu avamist blokeerib see teiste tehingute toimingud kuni selle lõpuleviimiseni.

HCtree toetab master-slave replikatsiooni, võimaldades tehingute migreerimist teise andmebaasi ja hoides sekundaarsed andmebaasid esmase andmebaasiga sünkroniseerituna. HCtree eemaldab ka andmebaasi suuruse piirangu – 32-bitiste andmelehe identifikaatorite asemel kasutab HCtree 48-bitiseid, suurendades andmebaasi maksimaalset suurust 16 tebibaidilt 1 eksbibaidile (üks miljon tebibaiti). SQLite'i jõudlus HCtree taustaprogrammiga peaks olema võrreldav klassikalise ühelõimelise taustaprogrammi jõudlusega. HCtree toega SQLite'i kliendid saavad juurde pääseda nii HC-puu-põhistele andmebaasidele kui ka pärand-SQLite'i andmebaasidele.

Allikas: opennet.ru

Lisa kommentaar