Az SQLite fejlesztői fejlesztik a HC-tree backend-et párhuzamos írási műveletek támogatásával.

A SQLite projekt fejlesztői megkezdték az HCtree kísérleti backend tesztelését, amely támogatja a sor szintű zárolást, és magas fokú párhuzamosítást biztosít a lekérdezések feldolgozása során. Az új backend célja a SQLite hatékonyságának növelése kliens-szerver rendszerekben, ahol nagy számú párhuzamos írási kérést kell kezelni.

Az SQLite-ban eredetileg használt b-fa struktúrák nem a hasonló terhelések kezelésére lettek tervezve, ami korlátozza a SQLite írási képességét csupán egy szálon. Kísérletként a fejlesztők egy alternatív megoldás kidolgozásába kezdtek, amely az HC-tree struktúrákat használja az írási műveletek párhuzamosítására.

Az HCtree rendszerben a több művelet párhuzamos végrehajtásához egy tranzakciós szétválasztási mechanizmust alkalmaznak, amely lap szintű zárolásokat használ, és hasonló a MVCC-hez (több verziós párhuzamos hozzáférés kezelés), de kulcsok és kulcskategóriák alapú tranzakció-ellenőrzéseket végez lapcsoportok helyett. Az olvasási és írási műveletek a DB pillanatfelvételéhez kötődnek, amelynek módosításai csak a tranzakció befejezése után válnak láthatóvá a fő DB-ben.

A kliensek három tranzakciónyitási műveletet használhatnak:

  • «BEGIN» — A tranzakciók nem veszik figyelembe más kliensek hozzáférési adatait. Ha írási műveleteket hajtanak végre a tranzakción belül, a tranzakció csak akkor rögzíthető, ha a végrehajtása alatt nem történt más írási művelet a DB-ben.
  • «BEGIN CONCURRENT» — A tranzakciók gyűjtik a más kliensek hozzáférési adatait. Ha írási műveleteket hajtanak végre a tranzakción belül, a tranzakció rögzíthető, ha a pillanatfelvétel létrehozása óta más tranzakciók már rögzítésre kerültek a DB-ben.
  • «BEGIN EXCLUSIVE» — A tranzakció megnyitása után blokkolja más tranzakciók műveleteit a befejezéséig.

Az HCtree támogatja a „master-slave” típusú replikációt, amely lehetővé teszi a tranzakciók átvitelét egy másik adatbázisba, és segíti a másodlagos adatbázisokat abban, hogy szinkronban maradjanak a fő adatbázissal. Az HCtree emellett megszünteti az adatbázis méretére vonatkozó korlátozást — a 32 bites adatlap-azonosítók helyett a HCtree 48 bites azonosítókat alkalmaz, ami megnöveli az adatbázis maximális méretét 16 tebibájtról 1 exbibájtig (egy millió tebibájt). Várható, hogy az SQLite teljesítménye HCtree háttérrel nem lesz alacsonyabb, mint a klasszikus, egyszálú háttér. Az HCtree-t támogató SQLite ügyfelei egyaránt hozzáférhetnek az HC-tree struktúrára épülő adatbázishoz és a régi SQLite adatbázisokhoz.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster