rqlite, чудова полегшена розподілена реляційна СУБД

Si ви шукаєте розподілену СУБД що використовує SQLite як механізм зберігання, дозвольте сказати вам це rqlite - це саме для вас, оскільки це дозволяє організувати роботу кластера із сховищ, синхронізованих між собою.

З функцій rqlite, підкреслюється простота встановлення, впровадження та обслуговування розподіленого сховища відмовостійкий, який чимось схожий на etcd та Consul, але він використовує реляційну модель даних замість формату ключ / значення.

Про rqlite

Алгоритм консенсусу Raft використовується для синхронізації всіх вузлів. Rqlite використовувати оригінальну бібліотеку SQLite та драйвер go-sqlite3, на додаток до якого він виконує рівень, який обробляє запити клієнта, реплікує себе в інших вузлах і контролює консенсус, досягнутий щодо вибору головного вузла.

Зміни в базі даних може вносити лише вузол, обраний ведучим, але з'єднання з операціями запису можуть бути спрямовані на інші вузли кластера, які повернуть адресу лідера для повторення запиту (у наступній версії вони обіцяють додати автоматичну переадресацію виклику лідеру).

Основна увага приділяється стійкості до відмов, так СУБД масштабувати лише в операціях читання, і операції запису є вузьким місцем. Можна запустити кластер rqlite з одного вузла, і таке рішення може бути використано для забезпечення доступу до SQLite через HTTP без забезпечення відмовостійкості.

Дані SQLite у кожному вузлі вони зберігаються не у файлі, а в пам'яті. На рівні шарів із реалізацією протоколу Raft ведеться запис усіх команд SQLite, що призводять до змін у базі даних.

Цей запис використовується для реплікації (реплікації на рівні відтворення запиту на інші вузли), під час запуску нового вузла, або для відновлення після втрати зв'язку.

Для зменшення розміру запису використовується автоматична упаковка, яка запускається після заданої кількості змін і веде до підтвердження знімка, на тлі якого починається новий запис (стан бази даних в пам'яті ідентичний знімку + накопичений журнал змін).

З функцій rqlite:

  • Простота розгортання кластера без необхідності окремої установки SQLite.
  • Можливість швидкого отримання реплікаційного сховища SQL.
  • Готовий до використання у виробничих проектах.
  • Наявність HTTP (S) API, що дозволяє оновлювати дані в пакетному режимі та визначати провідний вузол кластера. Також надаються інтерфейс командного рядка та бібліотеки клієнта для різних мов програмування.
  • Наявність служби визначення інших вузлів, що дозволяє динамічно створювати кластери.
  • Підтримка шифрування обміну даними між вузлами.
  • Можливість налаштування рівня перевірки на відповідність та узгодженість даних при читанні.
  • Необов’язкова можливість підключення вузлів лише для читання, які не беруть участі у визначенні консенсусу та використовуються для збільшення масштабованості кластера для операцій читання.
  • Підтримка власної форми транзакцій на основі поєднання команд в одному запиті (транзакції на основі BEGIN, COMMIT, ROLLBACK, SAVEPOINT і RELEASE не підтримуються).

Про rqlite 6.0

Нова версія вносить суттєві архітектурні зміни, спрямовані на підвищення надійності кластера покращивши процес спрямування запитів на читання та запис до правильних вузлів кластера.

Вузли Rqlite зараз може мультиплексувати кілька логічних з'єднань між ними за допомогою з'єднань TCP, встановлених між вузлами протоколом Raft. Якщо запит вимагає повноважень лідерного вузла, але надсилається на вторинний вузол, вторинний вузол може визначити адресу лідера та передати його клієнтові, не виконуючи розрахунку консенсусу Raft.

Зміни також видалили окремий компонент для синхронізації метаданих та видалили окрему обробку стану та метаданих Raft.

Вторинні вузли тепер надсилають запити на ведучий вузол лише тоді, коли це необхідно, коли необхідно з’ясувати адресу ведучого вузла. API надає можливість отримувати інформацію про стан інших вузлів кластера. Команда Sysdump додана до CLI.

В кінці кінців якщо вам цікаво дізнатись більше про це або зверніться до інструкцій із встановлення та посібника користувача, ви можете це зробити за посиланням нижче.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

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