Canonical обяви версия 1.0 на Dqlite, C библиотека за SQL

Канонически

Миналата седмица Canonical обяви пускането на основна версия на проекта Dqlite 1.0, разработвате SQL двигател Вграден SQLite съвместим, който поддържа репликация на данни, автоматично възстановяване при аварийни ситуации и толерантност към грешки чрез обхващане на множество възли.

Dqlite е C библиотека Той изпълнява репликиран и SQL механизъм за бази данни с висока наличност и автоматичен отказ. Съкращението "dqlite" означава "Разпределен SQLite", което означава, че dqlite разширява SQLite с мрежов протокол, който може да свърже множество екземпляри на вашето приложение и да ги накара да действат като високодостъпен клъстер, без зависимост от външни бази данни.

Както е споменато СУБД е реализирана под формата на C библиотека, прикрепена към приложения и се разпространява под лиценза Apache 2.0 (оригиналният SQLite се предоставя в публичното пространство). Библиотеката е приставка на базата на съществуващ код на SQLite, което добавя поддръжка на мрежов протокол за свързване на множество екземпляри на приложението, работещо на различни хостове.

Приложение, изградено с Dqlite, може да функционира като клъстер за отказоустойчивост по автономна грешка, независимо от външна СУБД.

На практика, Canonical използва Dqlite в системата за управление на контейнери LXD. Сред областите на приложение на библиотеката се споменава и създаването на устройства и процесори Internet of Things, устойчиви на грешки в изчислителните системи Edge.

За да се осигури последователност в репликацията на данни, се използва консенсусен метод, базиран на алгоритъма Raft, който се използва в проекти като etcd, RethinkDB, CockroachDB и OpenDaylight. Dqlite използва собствена асинхронна реализация на C-raft, написана на C.

За да се мултиплексира обработката на връзката и да се организира стартирането на съпрограми, се използват подготвените библиотеки libuv и libco.

В сравнение с подобен rqlite проект, Dqlite предоставя пълна поддръжка на транзакции, той може да комуникира с всеки проект на C, позволява ви да използвате функцията time () и използва репликация въз основа на рамка вместо репликация, базирана на превод на SQL изрази.

От функциите, които могат да бъдат подчертани в Dqlite, са следните:

  • Извършвайте всички дискови и мрежови операции в асинхронен режим
  • Наличието на набор от тестове за потвърждаване на точността на данните
  • Ниска консумация на памет и ефективен обмен на данни по мрежата
  • Постоянно съхранение на диска на базата данни и регистър на транзакциите (с възможност за кеширане в паметта)
  • Бързо възстановяване след неуспехи
  • Стабилен клиент на CLI в език Go, който може да се използва за инициализиране на базата данни, конфигуриране на репликация и свързване / изключване на възли
  • Поддръжка за ARM, X86, POWER и IBM Z архитектури
  • Внедряването на алгоритъма Raft е оптимизирано за минимизиране на латентността на транзакциите.
  • Асинхронно изпълнение с единична резба, използващо libuv като цикъл на събития.
  • Персонализиран кабелен протокол, оптимизиран за примитиви на SQLite и типове данни.
  • Репликация на данни въз основа на алгоритъма на Raft и ефективното му прилагане в C-raft.

Как да инсталирам Dqlite на Ubuntu и деривати?

Canonical предоставя информация за това как можете да изградите клиент за взаимодействие с Dqlite, можете да се консултирате с това В следващия линк.

Що се отнася до инсталирането на библиотеката в системата, Това може да се инсталира по два начина за тези, които са потребители на Ubuntu или всяко друго производно от него. Canonical предоставя PPA откъдето може да се получи по доста прост начин.

Този PPA може да бъде добавен от терминал и да изпълнява следните команди в него:

sudo add-apt-repository ppa:dqlite/v1
sudo apt-get update
sudo apt-get install libdqlite-dev

Другият метод за инсталиране на тази библиотека е чрез компилиране от това в системата, така че това е по-общ метод както за Ubuntu, така и за други Linux дистрибуции.

За целта трябва само да отворят терминал и да изпълнят следните команди:

git clone --depth 100 https://github.com/canonical/sqlite.git
cd sqlite
./configure --enable-replication
make
sudo make install
cd ..
git clone https://github.com/canonical/libco.git
cd libco
make
sudo make install
cd ..
git clone https://github.com/canonical/raft.git
cd raft
autoreconf -i
./configure
make
sudo make install
cd ..

След като бъдат инсталирани всички необходими библиотеки, за да изградите споделената библиотека dqlite, можете да стартирате:

autoreconf -i
./configure
make
sudo make install

Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.