SQLite-kehittäjät kehittävät HC-tree-taustajärjestelmää, joka tukee rinnakkaiskirjoitusta

SQLite-projektin kehittäjät ovat alkaneet testata kokeellista HCtree-taustajärjestelmää, joka tukee rivitason lukitusta ja tarjoaa korkean tason rinnakkaisua kyselyitä käsiteltäessä. Uuden taustajärjestelmän tavoitteena on tehostaa SQLiten käyttöä asiakas-palvelinjärjestelmissä, joiden on käsiteltävä useita samanaikaisia ​​kirjoituspyyntöjä tietokantaan.

SQLitessä natiivisti tietojen tallentamiseen käytetyt b-puurakenteet eivät ole suunniteltu tämän tyyppiseen kuormitukseen, mikä rajoittaa SQLiten kirjoittamista vain yhteen säikeeseen. Kokeiluna kehittäjät alkoivat kehittää vaihtoehtoista ratkaisua, joka käyttää tallennukseen HC-puurakenteita, jotka sopivat paremmin kirjoitustoimintojen rinnakkaisuun.

Jotta useita toimintoja voidaan suorittaa samanaikaisesti, HCtree-tietue käyttää tapahtuman osiointimekanismia, joka käyttää sivutason lukitusta ja on samanlainen kuin MVCC (Multi-Version Concurrency Control), mutta käyttää tapahtumatarkistuksia, jotka perustuvat avaimiin ja avainalueisiin sivujoukkojen sijaan. Luku- ja kirjoitustoiminnot suoritetaan tietokannan tilannevedoksen yhteydessä, jonka muutokset tulevat näkyviin päätietokannassa vasta tapahtuman päätyttyä.

Asiakkaat voivat käyttää kolmea avointa tapahtumatoimintoa:

  • ”ALKU” – tapahtumat eivät ota huomioon muiden asiakkaiden pääsytietoja. Jos tapahtuman sisällä suoritetaan kirjoitustoimintoja, tapahtuma voidaan sitoa vain, jos sen suorituksen aikana tietokannassa ei ollut muita kirjoitustoimintoja.
  • "ALAA SAMANAIKAINEN" - tapahtumat keräävät tietoja muiden asiakkaiden pääsystä. Jos tapahtuman sisällä suoritetaan kirjoitustoimintoja, tapahtuma voidaan sitoa, jos tietokannassa on tehty muita tapahtumia tilannevedoksen luomisen jälkeen.
  • "ALUE EXCLUSIVE" - tapahtuman avaamisen jälkeen se estää muiden tapahtumien toiminnot, kunnes se on valmis.

HCtree tukee master-slave-replikointia, jonka avulla voit siirtää tapahtumia toiseen tietokantaan ja pitää toissijaiset tietokannat synkronoituna ensisijaisen tietokannan kanssa. HCtree poistaa myös tietokannan koon rajoituksen - 32-bittisten tietosivutunnisteiden sijaan HCtree käyttää 48-bittisiä, mikä kasvattaa tietokannan enimmäiskoon 16 tebitavusta 1 eksbitavuun (miljoonaa tebitavua). Odotetaan, että SQLiten suorituskyky HCtree-taustajärjestelmällä ei ole huonompi kuin klassinen yksisäikeinen taustaohjelma. SQLite-asiakkaat, joissa on HCtree-tuki, voivat käyttää sekä HC-puupohjaisia ​​tietokantoja että vanhoja SQLite-tietokantoja.

Lähde: opennet.ru

Lisää kommentti