Даступны Dqlite 1.0, размеркаваны варыянт SQLite ад кампаніі Canonical

Кампанія Canonical апублікавала значны выпуск праекта Dqlite 1.0 (Distributed SQLite), які развівае сумяшчальны з SQLite убудаваны SQL-рухавічок, які падтрымлівае рэплікацыю дадзеных, аўтаматычнае аднаўленне пасля збояў і забеспячэнне адмоваўстойлівасці праз разнясенне апрацоўшчыкаў на некалькі вузлоў. СКБД рэалізавана ў форме прымацаванай да дадаткаў Сі-бібліятэкі і распаўсюджваецца пад ліцэнзіяй Apache 2.0 (арыгінальны SQLite пастаўляецца як грамадскі здабытак). Даступныя біндынгі для мовы Go.

Бібліятэка з'яўляецца надбудовай над існуючай кодавай базай SQLite, якая дадае падтрымку сеткавага пратакола для звязвання паміж сабой некалькіх асобнікаў прыкладання, запушчаных на розных хастах. Сабранае з Dqlite прыкладанне можа функцыянаваць як самадастатковы адмоваўстойлівасць кластар, які не залежыць ад знешніх СКБД. На практыцы Dqlite выкарыстоўваецца кампаніяй Canonical у сістэме кіравання кантэйнерамі. LXD. Сярод абласцей прымянення бібліятэкі таксама згадваецца стварэнне адмоваўстойлівых прылад інтэрнэту-рэчаў і апрацоўшчыкаў у сістэмах.
Край-вылічэнняў.

Для забеспячэння несупярэчлівасці пры рэплікацыі дадзеных ужываецца метад дасягнення кансэнсусу на базе алгарытму рафт, Які выкарыстоўваецца ў такіх праектах, як etcd, RethinkDB, CockroachDB і OpenDaylight. У Dqlite прымяняецца ўласная асінхронная рэалізацыя C-raft, напісаная на мове Сі. Для мультыплексавання апрацоўкі злучэнняў і арганізацыі запуску супраграм выкарыстоўваюцца гатовыя бібліятэкі любіў и libco.

У параўнанні з падобным праектам rqlite, Dqlite забяспечвае поўную падтрымку транзакцый, можа звязвацца з любымі праектамі на мове Сі, дазваляе выкарыстоўваць функцыю time() і прымяняе рэплікацыю на аснове кадраў замест рэплікацыі на аснове трансляцыі SQL-выразаў.

Асаблівасці Dqlite:

  • Выкананне ўсіх дыскавых і сеткавых аперацый у асінхронным рэжыме;
  • Наяўнасць тэставага набору для пацверджання карэктнасці даных;
  • Нізкае спажыванне памяці і эфектыўны абмен дадзенымі па сетцы;
  • Пастаяннае захоўванне на дыску БД і лога транзакцый (з магчымасцю кэшавання ў памяці);
  • Хуткае аднаўленне пасля збояў;
  • Стабільны CLI-кліент на мове Go, які можна выкарыстоўваць для ініцыялізацыі БД, настройкі рэплікацыі і падключэння/адключэння вузлоў;
  • Падтрымка архітэктур ARM, X86, POWER і IBM Z;
  • Рэалізацыя алгарытму Raft аптымізавана для мінімізацыі затрымак пры фіксацыі транзакцый.

Крыніца: opennet.ru

Дадаць каментар