În SQLite lucrează deja pe un backend HCTree cu suport pentru scrieri paralele

SQLite

este un sistem de management al bazelor de date relaționale compatibil cu ACID, conținut într-o bibliotecă relativ mică scrisă în C

Dezvoltatorii proiectului SQLite a început să testeze un backend experimental HCtree care acceptă blocarea la nivel de rând și oferă un nivel ridicat de paralelism în procesarea interogărilor.

În ceea ce privește noul backend în care lucrează, se menționează că acesta își propune să îmbunătățească eficiența utilizării SQLite în sistemele client-server Ei trebuie să proceseze un număr mare de solicitări de scriere simultane în baza de date.

Las b-structuri de arbore utilizate inițial în SQLite pentru a stoca date Nu sunt proiectate pentru acest tip de sarcină., care limitează SQLite la scrierea la un singur flux. Ca experiment, dezvoltatorii au început să dezvolte o soluție alternativă care folosește structuri HCtree pentru stocare, mai potrivită pentru paralelizarea operațiilor de scriere.

Proiectul HC-tree (hctree) este o încercare de a dezvolta un nou backend de bază de date care îmbunătățește SQLite obișnuit, după cum urmează:

Concurență îmbunătățită: Utilizarea extensiei begin-concurrent modifică acest lucru, astfel încât să poată fi executat simultan folosind blocarea optimistă la nivel de pagină. Acest lucru îmbunătățește oarecum concurența, dar blocarea la nivel de pagină poate detecta conflicte între tranzacțiile independente din punct de vedere logic, iar operațiunile COMMIT trebuie încă serializate.

Suport pentru replicare: Stock SQLite acceptă extensie de sesiune, care permite serializarea conținutului unei tranzacții angajate pentru transmitere și aplicare la o a doua bază de date. Hctree integrează acest lucru în backend-ul bazei de date și adaugă suport pentru aplicarea unor astfel de tranzacții la bazele de date de urmăritori în configurații lider-follower. În acest caz, tranzacțiile primite dintr-o bază de date lider pot fi aplicate mai rapid și cu o concurență mai mare decât cele aplicate inițial bazei de date lider, deoarece nu validarea tranzacției.

Eliminarea limitărilor de dimensiunea bazei de date: Stock SQLite folosește numere de pagină pe 32 de biți. Folosind dimensiunea implicită a paginii de 4 KiB, aceasta duce la o dimensiune maximă a bazei de date de 2^44 de octeți sau 16 TiB.

Pentru a gestiona mai multe operațiuni în același timp, Jurnalele HCtree folosesc un mecanism de separare a tranzacțiilor care folosește blocări la nivel de pagină, similar cu MVCC (controlul de reținere a versiunilor multiple), dar utilizează controale ale tranzacțiilor bazate pe intervale de chei și intervale de chei în loc de seturi de pagini.

Operațiile de citire și scriere sunt efectuate în raport cu instantaneul bazei de date, ale cărei modificări devin vizibile pentru baza de date principală numai după finalizarea tranzacției.

Clienții pot folosi trei operațiuni pentru a deschide tranzacții:

  • «ÎNCEPE«: Tranzacțiile nu iau în considerare datele de acces ale altor clienți. Dacă operațiunile de scriere sunt efectuate în cadrul unei tranzacții, tranzacția poate fi efectuată numai dacă nu au existat alte operațiuni de scriere în baza de date în timpul executării acesteia.
    «ÎNCEPE CONCURENȚ«: Tranzacțiile colectează informații despre accesul altor clienți. Dacă operațiunile de scriere sunt efectuate în cadrul unei tranzacții, tranzacția poate fi comisă dacă alte tranzacții au fost comise în baza de date de când a fost creat instantaneul.
    «ÎNCEPE EXCLUSIV«: după deschiderea unei tranzacții, blochează operațiunile altor tranzacții până la finalizarea acesteia.

HCtree acceptă replicarea master-slave, permițând transferul tranzacțiilor într-o altă bază de date și menținând bazele de date secundare sincronizate cu baza de date primară.

HCtree elimină, de asemenea, limita de dimensiune a bazei de date: în loc de identificatorii de pagină de date de 32 de biți, HCtree utilizează identificatori de 48 de biți, ceea ce crește dimensiunea maximă a bazei de date de la 16 tebibytes la 1 exbibyte (milioane de tebibytes).

Performanța SQLite cu backend-ul HCtree este de așteptat să fie cel puțin la fel de bună ca backend-ul clasic cu un singur thread. Clienții SQLite cu suport HCtree vor putea accesa atât bazele de date HC-tree, cât și bazele de date vechi SQLite.

Fuente: https://sqlite.org/


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.