SQLite-ontwikkelaars ontwikkel HC-boom-agtergrond met ondersteuning vir parallelle skryfwerk

SQLite-projekontwikkelaars het begin om 'n eksperimentele HCtree-agterkant te toets wat ryvlaksluiting ondersteun en 'n hoë vlak van parallelisering bied wanneer navrae verwerk word. Die nuwe agterkant is daarop gemik om die doeltreffendheid van die gebruik van SQLite in kliënt-bedienerstelsels te verbeter wat 'n groot aantal gelyktydige skryfversoeke na die databasis moet verwerk.

Die b-boomstrukture wat oorspronklik in SQLite gebruik word om data te stoor, is nie ontwerp vir hierdie tipe vrag nie, wat SQLite beperk om tot slegs een draad te skryf. As 'n eksperiment het die ontwikkelaars begin om 'n alternatiewe oplossing te ontwikkel wat HC-boomstrukture vir berging gebruik, wat meer geskik is vir parallellisering van skryfbedrywighede.

Om toe te laat dat veelvuldige bewerkings gelyktydig loop, gebruik 'n HCtree-rekord 'n transaksie-partisioneringsmeganisme wat bladsyvlak-sluiting gebruik en soortgelyk is aan MVCC (Multi-Version Concurrency Control), maar gebruik transaksiekontroles gebaseer op sleutels en sleutelreekse in plaas van bladsystelle. Lees- en skryfbewerkings word uitgevoer in verband met 'n databasis-momentopname, waarvan veranderings eers in die hoofdatabasis sigbaar word nadat die transaksie voltooi is.

Kliënte kan drie oop transaksiebewerkings gebruik:

  • "BEGIN" - transaksies neem nie toegangsdata van ander kliënte in ag nie. As skryfbewerkings binne 'n transaksie uitgevoer word, kan die transaksie slegs gepleeg word indien daar tydens die uitvoering daarvan geen ander skryfbewerkings in die databasis was nie.
  • "BEGIN GELYKTYD" - transaksies versamel inligting oor die toegang van ander kliënte. As skryfbewerkings binne 'n transaksie uitgevoer word, kan die transaksie gepleeg word indien ander transaksies in die databasis gepleeg is sedert die momentopname geskep is.
  • "BEGIN EKSKLUSIEF" - nadat 'n transaksie oopgemaak is, blokkeer dit bedrywighede van ander transaksies totdat dit voltooi is.

HCtree ondersteun meester-slaaf-replikasie, wat jou toelaat om transaksies na 'n ander databasis te migreer en sekondêre databasisse sinchroniseer met die primêre databasis te hou. HCtree verwyder ook die beperking op databasisgrootte - in plaas van 32-bis databladsy-identifiseerders, gebruik HCtree 48-bis, wat die maksimum databasisgrootte van 16 tebigrepe tot 1 exbigrepe (miljoen tebigrepe) verhoog. Daar word verwag dat die werkverrigting van SQLite met die HCtree-agterkant nie laer sal wees as die klassieke enkeldraad-agterkant nie. SQLite-kliënte met HCtree-ondersteuning sal toegang hê tot beide HC-boom-gebaseerde databasisse en verouderde SQLite-databasisse.

Bron: opennet.ru

Voeg 'n opmerking