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. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.