Företaget Canonical Betydande lansering av projektet (Distributed SQLite), som utvecklar en SQLite-kompatibel inbÀddad SQL-motor som stödjer datareplication, automatisk ÄterstÀllning efter avbrott och sÀkerstÀller redundans genom att sprida hanterare över flera noder. Databashanteringssystemet Àr implementerat i form av ett C-bibliotek som kopplas till applikationer och slÀpps under Apache 2.0-licensen (den ursprungliga SQLite distribueras som offentlig domÀn). Bindningar för sprÄket finns tillgÀngliga. .
Biblioteket Àr ett tillÀgg till den befintliga SQLite-koden som lÀgger till stöd för nÀtverksprotokoll för att koppla samman flera instanser av applikationen som körs pÄ olika vÀrdar. En applikation som byggts med Dqlite kan fungera som en sjÀlvbÀrande redundanskluster utan att vara beroende av externa databashanteringssystem. I praktiken anvÀnds Dqlite av Canonical i containerhanteringssystemet. Inom omrÄden som bibliotekets tillÀmpning nÀmns Àven skapandet av redundanta Internet of Things-enheter och bearbetare i system
.
För att sÀkerstÀlla konsistens vid datareplication tillÀmpas en konsensusmetod baserad pÄ algoritmen , som anvÀnds i projekt som etcd, RethinkDB, CockroachDB och OpenDaylight. I Dqlite anvÀnds en egen asynkron implementation av , skriven i C. För multiplexering av anslutningsbehandling och organisering av programmets körning anvÀnds fÀrdiga bibliotek. och .
JÀmfört med det liknande projektet , erbjuder Dqlite fullstÀndigt stöd för transaktioner, kan ansluta till alla projekt skrivna i C, tillÄter anvÀndning av funktionen time() och tillÀmpar replikation baserad pÄ ramverk istÀllet för replikation baserad pÄ SQL-uttryck.
Funktioner hos Dqlite:
- Utförande av alla disk- och nÀtverksoperationer i asynkront lÀge;
- TillgÄng till en testuppsÀttning för att bekrÀfta datakorrekthet;
- LÄgt minnesutnyttjande och effektiv datakommunikation över nÀtverket;
- Konsistent lagring av databasen och transaktionsloggen pÄ disken (med möjlighet till caching i minnet);
- Snabb ÄterstÀllning efter avbrott;
- En stabil CLI-klient skriven i Go, som kan anvÀndas för att initiera databasen, stÀlla in replikation och koppla ansluta/koppla frÄn noder;
- Stöd för ARM-, X86-, POWER- och IBM Z-arkitekturer;
- Genomförandet av Raft-algoritmen Àr optimerat för att minimera fördröjningar vid transaktionsÄtaganden.
KĂ€lla: opennet.ru
