Dans SQLite, ils fonctionnent déjà sur un backend HCTree avec prise en charge des écritures parallèles

SQLite

est un système de gestion de base de données relationnelle compatible ACID, contenu dans une bibliothèque relativement petite écrite en C

Les développeurs de projets SQLite a commencé à tester un backend expérimental HCtree qui prend en charge le verrouillage au niveau des lignes et fournit un niveau élevé de parallélisme dans le traitement des requêtes.

En ce qui concerne le nouveau backend dans lequel ils travaillent, il est mentionné que ce vise à améliorer l'efficacité de l'utilisation de SQLite dans les systèmes client-serveur Ils doivent traiter un grand nombre de demandes d'écriture simultanées dans la base de données.

Les structures b-tree utilisées à l'origine en SQLite pour stocker des données Ils ne sont pas conçus pour ce type de charge., ce qui limite SQLite à écrire dans un seul flux. À titre expérimental, les développeurs ont commencé à développer une solution alternative qui utilise des structures HCtree pour le stockage, plus adaptées à la parallélisation des opérations d'écriture.

Le projet HC-tree (hctree) est une tentative de développement d'un nouveau backend de base de données qui améliore le SQLite standard comme suit :

Concurrence améliorée : L'utilisation de l'extension begin-concurrent change cela afin qu'il puisse être exécuté simultanément en utilisant le verrouillage optimiste au niveau de la page. Cela améliore quelque peu la concurrence, mais le verrouillage au niveau de la page peut détecter des conflits entre des transactions logiquement indépendantes, et les opérations COMMIT doivent toujours être sérialisées.

Prise en charge de la réplication : Stock SQLite prend en charge le prolongation de session, qui permet de sérialiser le contenu d'une transaction validée pour la transmission et l'application à une deuxième base de données. Hctree intègre cela dans le backend de la base de données et ajoute la prise en charge de l'application de telles transactions aux bases de données suiveuses dans les configurations leader-suiveur. Dans ce cas, les transactions reçues d'une base de données principale peuvent être appliquées plus rapidement et avec une plus grande simultanéité que celles initialement appliquées à la base de données principale, car aucune validation des transactions.

Élimination des limitations de taille de base de données : Stock SQLite utilise des numéros de page 32 bits. En utilisant la taille de page par défaut de 4 Kio, cela conduit à une taille de base de données maximale de 2^44 octets ou 16 Tio.

Pour gérer plusieurs opérations en même temps, Les journaux HCtree utilisent un mécanisme de séparation des transactions qui utilise des verrous au niveau de la page, similaires à MVCC (contrôle de confinement de versions multiples), mais utilise des contrôles de transaction basés sur des plages de clés et des plages de clés au lieu d'ensembles de pages.

Les opérations de lecture et d'écriture sont effectuées par rapport à l'instantané de la base de données, dont les modifications ne deviennent visibles pour la base de données principale qu'une fois la transaction terminée.

Les clients peuvent utiliser trois opérations pour ouvrir des transactions :

  • «COMMENCER« : Les transactions ne prennent pas en compte les données d'accès des autres clients. Si des opérations d'écriture sont effectuées dans une transaction, la transaction ne peut être validée que s'il n'y a pas eu d'autres opérations d'écriture dans la base de données au moment de son exécution.
    «COMMENCER CONCURRENT« : Les transactions collectent des informations sur l'accès d'autres clients. Si des opérations d'écriture sont effectuées dans une transaction, la transaction peut être validée si d'autres transactions ont été validées dans la base de données depuis la création de l'instantané.
    «DÉBUT EXCLUSIF« : après l'ouverture d'une transaction, bloque les opérations des autres transactions jusqu'à ce qu'elle soit terminée.

HCtree prend en charge la réplication maître-esclave, ce qui vous permet de transférer des transactions vers une autre base de données et de synchroniser les bases de données secondaires avec la base de données principale.

HCtree supprime également la limite de taille de la base de données : au lieu des identifiants de page de données 32 bits, HCtree utilise des identifiants 48 bits, ce qui augmente la taille maximale de la base de données de 16 tebibytes à 1 exbibyte (million de tebibytes).

Les performances de SQLite avec le backend HCtree devraient être au moins aussi bonnes que le backend classique à un seul thread. Les clients SQLite prenant en charge HCtree pourront accéder à la fois aux bases de données HC-tree et aux anciennes bases de données SQLite.

source: https://sqlite.org/


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.