U SQLite-u oni već rade na HCTree backendu s podrškom za paralelno upisivanje

SQLite

je sistem za upravljanje relacionim bazama podataka usklađen sa ACID-om, koji se nalazi u relativno maloj biblioteci napisanoj u C

Programeri projekta SQLite je započeo testiranje eksperimentalnog HCtree backenda koji podržava zaključavanje na nivou reda i pruža visok nivo paralelizma u obradi upita.

Što se tiče novog backenda u kojem rade, spominje se da je ovo ima za cilj poboljšanje efikasnosti korištenja SQLite-a u klijent-server sistemima Moraju obraditi veliki broj istovremenih zahtjeva za pisanje u bazu podataka.

u izvorno korištene strukture b-stabla u SQLite-u za pohranjivanje podataka Nisu dizajnirani za ovu vrstu opterećenja., što ograničava SQLite na pisanje samo na jedan tok. Kao eksperiment, programeri su počeli da razvijaju alternativno rešenje koje koristi HCtree strukture za skladištenje, pogodnije za paralelizaciju operacija pisanja.

HC-tree (hctree) projekat je pokušaj da se razvije novi backend baze podataka koji se poboljšava u odnosu na regularni SQLite na sljedeći način:

Poboljšana konkurentnost: Upotreba ekstenzije start-concurrent mijenja ovo tako da se može izvršiti istovremeno korištenjem optimističkog zaključavanja na razini stranice. Ovo donekle poboljšava konkurentnost, ali zaključavanje na razini stranice može otkriti sukobe između logički nezavisnih transakcija, a COMMIT operacije i dalje moraju biti serijalizirane.

Podrška za replikaciju: Stock SQLite podržava produženje sesije, koji omogućava da se sadržaj predane transakcije serijalizira za prijenos i primjenu na drugu bazu podataka. Hctree ovo integriše u pozadinu baze podataka i dodaje podršku za primenu takvih transakcija na baze podataka pratilaca u konfiguracijama lider-sledbenik. U ovom slučaju, transakcije primljene iz vodeće baze podataka mogu se primijeniti brže i s većom konkurentnošću od onih koje su prvobitno primijenjene na vodeću bazu podataka, jer ne validacija transakcije.

Uklanjanje ograničenja veličine baze podataka: Stock SQLite koristi 32-bitne brojeve stranica. Koristeći zadanu veličinu stranice od 4 KiB, ovo dovodi do maksimalne veličine baze podataka od 2^44 bajta ili 16 TiB.

Za obavljanje nekoliko operacija istovremeno, HCtree zapisnici koriste mehanizam razdvajanja transakcija koji koristi zaključavanje na nivou stranice, slično MVCC (kontrola zadržavanja više verzija), ali koristi kontrole transakcija zasnovane na rasponima ključeva i rasponima ključeva umjesto skupova stranica.

Operacije čitanja i pisanja izvode se u odnosu na snimak baze podataka, čije promjene postaju vidljive glavnoj bazi podataka tek nakon što se transakcija završi.

Klijenti mogu koristiti tri operacije za otvaranje transakcija:

  • «BEGIN«: Transakcije ne uzimaju u obzir pristupne podatke drugih klijenata. Ako se operacije pisanja izvode unutar transakcije, transakcija se može izvršiti samo ako nije bilo drugih operacija pisanja u bazu podataka u vrijeme njenog izvršenja.
    «POČNITE CONCURRENT«: Transakcije prikupljaju informacije o pristupu drugih klijenata. Ako se operacije pisanja izvode unutar transakcije, transakcija se može predati ako su druge transakcije predane bazi podataka od kreiranja snimka.
    «POČNI EKSKLUZIVNO«: nakon otvaranja transakcije, blokira rad drugih transakcija dok se ne završi.

HCtree podržava master-slave replikaciju, što vam omogućava prijenos transakcija u drugu bazu podataka i držanje sekundarnih baza podataka u sinkronizaciji s primarnom bazom podataka.

HCtree također uklanja ograničenje veličine baze podataka: umjesto 32-bitnih identifikatora stranica podataka, HCtree koristi 48-bitne identifikatore, što povećava maksimalnu veličinu baze podataka sa 16 tebibajta na 1 eksbibajt (miliona tebibajta).

Očekuje se da će performanse SQLite-a sa HCtree backend-om biti barem jednako dobre kao i klasični single-threaded backend. SQLite klijenti sa podrškom za HCtree moći će pristupiti i HC-tree bazama podataka i starim SQLite bazama podataka.

Izvor: https://sqlite.org/


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.