rqlite 7.0 уже выпущен, и это его новости

Недавно анонсирован выпуск распространяемой СУБД rqlite 7.0, в которой эта новая версия представляет новую интеграцию обнаружения узлов с Consul и etcd. Использование одной из этих систем с rqlite значительно упрощает автоматическую кластеризацию rqlite, а устаревший режим обнаружения не поддерживается в версии 7.0, но может появиться в будущем выпуске.

Для тех, кто не знает о rqlite, они должны знать, что этот использует SQLite в качестве механизма хранения и позволяет организовать работу кластера из синхронизированных друг с другом хранилищ.

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

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

Изменения базы данных могут быть внесены только узлом, выбранным в качестве лидера., но соединения для записи могут быть направлены на другие узлы в кластере, которые вернут адрес лидера для повторения запроса.

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

Данные SQLite на каждом узле хранятся не в файле, а в памяти. На уровне уровня с реализацией протокола Raft ведется журнал всех команд SQLite, которые приводят к изменению базы данных.

Этот журнал используется для репликации (репликация уровня воспроизведения на другие узлы), при запуске нового узла или для восстановления после потери подключения. Для уменьшения размера бревна используется автоматическая упаковка, который запускается после заданного количества изменений и приводит к фиксации снапшота, в связи с чем запускается новая запись (состояние БД в памяти идентично снэпшоту + накопленному журналу изменений).

Основные новинки rqlite 7.0

В этой новой версии, которая представлена мы можем обнаружить, что была добавлена ​​​​поддержка автоматической кластеризации rqlite используя новую службу обнаружения узлов, которая может работать в распределенном хранилище Consul и etcd. Таким образом, служба позволяет автоматически находить узлы rqlite: администратору нужно только запустить несколько узлов на разных серверах, указав общий адрес кластера Consul или etcd (например, «example.com:8500»), а узлы будут автоматически сгруппированы вместе.

Нода-лидер периодически обновляет информацию о своем адресе в хранилище Consul или etcd, что позволяет в будущем менять лидера без перенастройки остальных нод, а также добавлять новые ноды даже после смены лидера.

Еще одно важное изменение: прекращена поддержка старой службы режима обнаружения на платформе AWS Lambda.

Помимо этого в интерфейсе CLI разрешено указывать сразу несколько хостов: если первый узел недоступен, будет установлен контакт со следующими хостами.

Также отмечается, что переработанный код для анализа аргументов командной строки rqlit и что устаревший пакет protobuf устарел.

В то время как хранилище BoltDB, используемое в реализации протокола Raft, было заменено bbolt, ответвлением проекта etcd.

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


Оставьте свой комментарий

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

*

*

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