У SQLite вони вже працюють на сервері HCTree з підтримкою паралельного запису

SQLite

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

Розробники проекту SQLite розпочав тестування експериментального бекенда HCtree який підтримує блокування на рівні рядків і забезпечує високий рівень паралелізму в обробці запитів.

Щодо нового бекенда, в якому вони працюють, згадується, що це спрямований на підвищення ефективності використання SQLite в клієнт-серверних системах Їм доводиться обробляти велику кількість одночасних запитів на запис до бази даних.

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

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

Покращена паралельність: Використання розширення begin-concurrent змінює це, щоб його можна було виконувати одночасно за допомогою оптимістичного блокування на рівні сторінки. Це дещо покращує паралелізм, але блокування на рівні сторінки може виявляти конфлікти між логічно незалежними транзакціями, а операції COMMIT все ще потребують серіалізації.

Підтримка реплікації: Stock SQLite підтримує розширення сесії, що дозволяє серіалізувати вміст здійсненої транзакції для передачі та застосування до другої бази даних. Hctree інтегрує це в серверну частину бази даних і додає підтримку для застосування таких транзакцій до баз даних послідовників у конфігураціях лідер-послідовник. У цьому випадку транзакції, отримані з провідної бази даних, можуть бути застосовані швидше та з більшою паралельністю, ніж ті, що спочатку були застосовані до провідної бази даних, оскільки ні перевірка транзакції.

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