Кампанія Canonical значны выпуск праекта (Distributed SQLite), які развівае сумяшчальны з SQLite убудаваны SQL-рухавічок, які падтрымлівае рэплікацыю дадзеных, аўтаматычнае аднаўленне пасля збояў і забеспячэнне адмоваўстойлівасці праз разнясенне апрацоўшчыкаў на некалькі вузлоў. СКБД рэалізавана ў форме прымацаванай да дадаткаў Сі-бібліятэкі і пад ліцэнзіяй Apache 2.0 (арыгінальны SQLite пастаўляецца як грамадскі здабытак). Даступныя біндынгі для мовы .
Бібліятэка з'яўляецца надбудовай над існуючай кодавай базай SQLite, якая дадае падтрымку сеткавага пратакола для звязвання паміж сабой некалькіх асобнікаў прыкладання, запушчаных на розных хастах. Сабранае з Dqlite прыкладанне можа функцыянаваць як самадастатковы адмоваўстойлівасць кластар, які не залежыць ад знешніх СКБД. На практыцы Dqlite выкарыстоўваецца кампаніяй Canonical у сістэме кіравання кантэйнерамі. . Сярод абласцей прымянення бібліятэкі таксама згадваецца стварэнне адмоваўстойлівых прылад інтэрнэту-рэчаў і апрацоўшчыкаў у сістэмах.
.
Для забеспячэння несупярэчлівасці пры рэплікацыі дадзеных ужываецца метад дасягнення кансэнсусу на базе алгарытму , Які выкарыстоўваецца ў такіх праектах, як etcd, RethinkDB, CockroachDB і OpenDaylight. У Dqlite прымяняецца ўласная асінхронная рэалізацыя , напісаная на мове Сі. Для мультыплексавання апрацоўкі злучэнняў і арганізацыі запуску супраграм выкарыстоўваюцца гатовыя бібліятэкі и .
У параўнанні з падобным праектам , Dqlite забяспечвае поўную падтрымку транзакцый, можа звязвацца з любымі праектамі на мове Сі, дазваляе выкарыстоўваць функцыю time() і прымяняе рэплікацыю на аснове кадраў замест рэплікацыі на аснове трансляцыі SQL-выразаў.
Асаблівасці Dqlite:
- Выкананне ўсіх дыскавых і сеткавых аперацый у асінхронным рэжыме;
- Наяўнасць тэставага набору для пацверджання карэктнасці даных;
- Нізкае спажыванне памяці і эфектыўны абмен дадзенымі па сетцы;
- Пастаяннае захоўванне на дыску БД і лога транзакцый (з магчымасцю кэшавання ў памяці);
- Хуткае аднаўленне пасля збояў;
- Стабільны CLI-кліент на мове Go, які можна выкарыстоўваць для ініцыялізацыі БД, настройкі рэплікацыі і падключэння/адключэння вузлоў;
- Падтрымка архітэктур ARM, X86, POWER і IBM Z;
- Рэалізацыя алгарытму Raft аптымізавана для мінімізацыі затрымак пры фіксацыі транзакцый.
Крыніца: opennet.ru
