В SQLite они уже работают на бэкенде HCTree с поддержкой параллельной записи.

SQLite

ACID-совместимая система управления реляционными базами данных, содержащаяся в относительно небольшой библиотеке, написанной на C.

Разработчики проекта SQLite начали тестирование экспериментального бэкенда HCtree который поддерживает блокировку на уровне строк и обеспечивает высокий уровень параллелизма при обработке запросов.

Что касается нового бэкэнда, в котором они работают, упоминается, что это направлен на повышение эффективности использования SQLite в клиент-серверных системах Им приходится обрабатывать большое количество одновременных запросов на запись в базу данных.

Лас- первоначально использовавшиеся структуры b-дерева в SQLite для хранения данных Они не предназначены для такого типа нагрузки., что ограничивает SQLite записью только в один поток. В качестве эксперимента разработчики приступили к разработке альтернативного решения, использующего для хранения структуры HCtree, более подходящего для распараллеливания операций записи.

Проект HC-tree (hctree) — это попытка разработать новую серверную часть базы данных, которая улучшает обычный SQLite следующим образом:

Улучшенный параллелизм: Использование расширения begin-concurrent изменяет это, чтобы его можно было выполнять одновременно, используя оптимистическую блокировку на уровне страницы. Это несколько улучшает параллелизм, но блокировка на уровне страницы может обнаруживать конфликты между логически независимыми транзакциями, а операции COMMIT по-прежнему необходимо сериализовать.

Поддержка репликации: Стандартный SQLite поддерживает продление сеанса, что позволяет сериализовать содержимое зафиксированной транзакции для передачи и применения во второй базе данных. Hctree интегрирует это в серверную часть базы данных и добавляет поддержку применения таких транзакций к базам данных-последователям в конфигурациях «лидер-последователь». В этом случае транзакции, полученные из ведущей базы данных, могут выполняться быстрее и с большим параллелизмом, чем те, которые первоначально применялись к ведущей базе данных, поскольку проверка транзакции.

Устранение ограничений размера базы данных: Стандартный SQLite использует 32-битные номера страниц. При использовании размера страницы по умолчанию, равного 4 КиБ, максимальный размер базы данных составляет 2 ^ 44 байта или 16 ТиБ.

Чтобы выполнять несколько операций одновременно, Журналы HCtree используют механизм разделения транзакций. который использует блокировки на уровне страниц, аналогичные MVCC (управление несколькими версиями), но использует элементы управления транзакциями на основе диапазонов ключей и диапазонов ключей вместо наборов страниц.

Операции чтения и записи выполняются относительно снимка базы данных, изменения которого становятся видимыми для основной базы данных только после завершения транзакции.

Клиенты могут использовать три операции для открытия транзакций:

  • «НАЧАТЬ«: Транзакции не учитывают данные доступа других клиентов. Если операции записи выполняются внутри транзакции, транзакция может быть зафиксирована только в том случае, если во время ее выполнения не было других операций записи в базу данных.
    «НАЧАТЬ СОГЛАСОВАТЬ«: Транзакции собирают информацию о доступе других клиентов. Если операции записи выполняются внутри транзакции, транзакция может быть зафиксирована, если другие транзакции были зафиксированы в базе данных с момента создания моментального снимка.
    «НАЧАТЬ ЭКСКЛЮЗИВ«: после открытия транзакции блокирует операции других транзакций до ее завершения.

HCtree поддерживает репликацию master-slave, позволяя передавать транзакции в другую базу данных и синхронизируя вторичные базы данных с первичной базой данных.

HCtree также снимает ограничение на размер базы данных: вместо 32-битных идентификаторов страниц данных HCtree использует 48-битные идентификаторы, что увеличивает максимальный размер базы данных с 16 терабайт до 1 эксбибайта (миллиона терабайт).

Ожидается, что производительность SQLite с бэкендом HCtree будет не ниже, чем у классического однопоточного бэкенда. Клиенты SQLite с поддержкой HCtree смогут получить доступ как к базам данных HC-tree, так и к устаревшим базам данных SQLite.

источник: https://sqlite.org/


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

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

*

*

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