A SQLite ja treballen en un backend HCTree amb suport per a escriptures paral·leles

SQLite

és un sistema de gestió de bases de dades relacional compatible amb ACID, continguda en una relativament petita biblioteca escrita a C

Els desenvolupadors de el projecte SQLite han començat a provar un backend experimental de HCtree que admet el bloqueig a nivell de fila i proporciona un alt nivell de paral·lelisme al processament de consultes.

Sobre el nou backend en què es troben treballant s'esmenta que aquest té com a objectiu millorar l'eficiència de l'ús de SQLite en sistemes client-servidor que han de processar una gran quantitat de sol · licituds d'escriptura simultànies a la base de dades.

Els estructures b-tree utilitzades originalment a SQLite per emmagatzemar dades no estan dissenyades per a aquest tipus de càrrega, el que limita a SQLite a escriure només en una seqüència. Com a experiment, els desenvolupadors van començar a desenvolupar una solució alternativa que utilitza estructures de HCtree per a l'emmagatzematge, més adequades per paral·lelitzar operacions d'escriptura.

El projecte HC-tree (hctree) és un intent de desenvolupar un nou backend de base de dades que millora l'SQLite normal de la manera següent:

Concurrència millorada: L'ús de l'extensió begin-concurrent canvia això perquè pugui executar simultàniament utilitzant el bloqueig optimista a nivell de pàgina. Això millora una mica la simultaneïtat, però el bloqueig a nivell de pàgina pot detectar conflictes entre transaccions lògicament independents, i les operacions COMMIT encara s'han de serialitzar.

Compatibilitat amb la replicació: Stock SQLite admet la extensió de sessions, que permet serialitzar el contingut d'una transacció confirmada per a la transmissió i l'aplicació a una segona base de dades. Hctree integra això al backend de la base de dades i afegeix suport per a l'aplicació d'aquestes transaccions a les bases de dades de seguidors en configuracions de líder-seguidor. En aquest cas, les transaccions rebudes d'una base de dades capdavantera es poden aplicar més ràpidament i amb més concurrència que amb les que es van aplicar originalment a la base de dades capdavantera, perquè no es requereix validació de transaccions.

Eliminació de les limitacions de mida de la base de dades: Stock SQLite utilitza números de pàgina de 32 bits. Usant la mida de pàgina per defecte de 4 KiB, això condueix a una mida màxima de base de dades de 2^44 bytes o 16 TiB.

Per manejar diverses operacions alhora, els registres de HCtree usen un mecanisme de separació de transaccions que utilitza bloquejos a nivell de pàgina, similar a MVCC (control de contenció de múltiples versions), però utilitza controls de transaccions basats en rangs de claus i rangs de claus en lloc de conjunts de pàgines.

Les operacions de lectura i escriptura es fan en relació amb la instantània de la base de dades, els canvis de la qual es tornen visibles a la base de dades principal només després que es completi la transacció.

Els clients poden utilitzar tres operacions dobertura de transaccions:

  • «ComençarLes transaccions no tenen en compte les dades d'accés d'altres clients. Si es fan operacions d'escriptura dins d'una transacció, la transacció només es pot confirmar si no hi va haver altres operacions d'escriptura a la base de dades durant el temps d'execució.
    «BEGIN CONCURRENTLes transaccions recopilen informació sobre l'accés d'altres clients. Si es fan operacions d'escriptura dins d'una transacció, la transacció es pot confirmar si s'han confirmat altres transaccions a la base de dades des que es va crear la instantània.
    «BEGIN EXCLUSIU«: després d'obrir una transacció, bloqueja les operacions d'altres transaccions fins que es completi.

HCtree admet la replicació mestre-esclau, cosa que permet transferir transaccions a una altra base de dades i mantenir les bases de dades secundàries sincronitzades amb la base de dades principal.

HCtree també elimina el límit de mida de la base de dades: en lloc d'identificadors de pàgina de dades de 32 bits, HCtree utilitza identificadors de 48 bits, la qual cosa augmenta la mida màxima de la base de dades de 16 tebibytes a 1 exbibyte ( milions de tebibytes).

S'espera que el rendiment de SQLite amb el backend HCtree sigui almenys tan bo com el backend clàssic d'un sol subprocés. Els clients de SQLite amb compatibilitat amb HCtree podran accedir tant a les bases de dades de HC-tree com a les bases de dades SQLite heretades.

font: https://sqlite.org/


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.