Utvecklarna av SQLite utvecklar HC-tree backend med stöd för parallella skrivoperationer.

Utvecklarna av SQLite-projektet har pÄbörjat testning av den experimentella backenden HCtree, som stöder radnivÄlÄsning och erbjuder hög grad av parallellisering vid bearbetning av förfrÄgningar. Den nya backenden syftar till att öka effektiviteten hos SQLite i klient-server-system dÀr ett stort antal samtidiga skrivförfrÄgningar till databasen mÄste hanteras.

b-tree-strukturerna, som ursprungligen anvÀndes i SQLite för datalagring, Àr inte konstruerade för denna typ av belastning, vilket begrÀnsar SQLite till skrivning i en enda trÄd. Som ett experiment började utvecklarna utveckla en alternativ lösning som anvÀnder HC-tree-strukturer för lagring, vilket Àr mer lÀmpligt för parallellisering av skrivoperationer.

För att organisera samtidig utförande av flera operationer i HCtree-posterna anvÀnds en mekanism för transaktionsuppdelning, som anvÀnder sidnivÄlÄsningar och liknar MVCC (multiversion concurrency control), men anvÀnder transaktionskontroller baserat pÄ nycklar och nyckelomrÄden istÀllet för siduppsÀttningar. LÀs- och skrivoperationer utförs kopplat till en databasavbildning, vars Àndringar blir synliga i den huvudsakliga databasen först efter att transaktionen har slutförts.

Kunderna kan anvÀnda tre operationer för att öppna transaktioner:

  • «BEGIN» — transaktioner tar inte hĂ€nsyn till andra klienters Ă„tkomstdata. Om det inom en transaktion görs skrivoperationer kan transaktionen endast bekrĂ€ftas om det inte har funnits andra skrivoperationer i databasen under genomförandet.
  • «BEGIN CONCURRENT» — transaktioner samlar information om andra klienters Ă„tkomst. Om det inom en transaktion görs skrivoperationer kan transaktionen bekrĂ€ftas om det har registrerats andra transaktioner i databasen sedan snapshots skapades.
  • «BEGIN EXCLUSIVE» — efter öppnandet av transaktionen blockeras operationer frĂ„n andra transaktioner tills den Ă€r avslutad.

HCtree stödjer master-slave replikering, vilket möjliggör överföring av transaktioner till en annan databas och hĂ„ller sekundĂ€ra databaser synkroniserade med huvuddatabasen. HCtree tar ocksĂ„ bort begrĂ€nsningen pĂ„ databasens storlek – istĂ€llet för 32-bitars databasidentifierare anvĂ€nds 48-bitars identifierare, vilket ökar den maximala storleken pĂ„ databasen frĂ„n 16 tebibyte till 1 exbibyte (en miljon tebibyte). Prestandan för SQLite med HCtree-backend förvĂ€ntas vara minst lika bra som den klassiska en-trĂ„dade backend. SQLite-klienter med HCtree-stöd kommer att kunna komma Ă„t bĂ„de databaser baserade pĂ„ HC-tree-strukturen och gamla SQLite-databaser.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster