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

Канонический

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

Dqlite - это библиотека C Он реализует реплицированный механизм базы данных SQL с высокой доступностью и автоматическим переключением при отказе. Акроним «dqlite» означает «Распределенный SQLite», Это означает, что dqlite расширяет SQLite с помощью сетевого протокола, который может подключать несколько экземпляров вашего приложения и заставлять их действовать как высокодоступный кластер без зависимости от внешних баз данных.

Как уже упоминалось СУБД реализована в виде библиотеки Си, прикрепленной к приложениям. и распространяется под лицензией Apache 2.0 (исходный SQLite находится в открытом доступе). Библиотека представляет собой плагин на основе существующего кода SQLite, который добавляет поддержку сетевого протокола для связывания нескольких экземпляров приложения, запущенного на разных хостах.

Приложение, созданное с помощью Dqlite, может работать как отказоустойчивый кластер. по автономной ошибке, независимо от внешней СУБД.

На практике, Canonical использует Dqlite в системе управления контейнерами LXD. Среди областей применения библиотеки также упоминается создание отказоустойчивых устройств и процессоров Интернета вещей в вычислительных системах 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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.