Делимся последними новостями о СУБД SoQoL

Есть ли ACID в SoQoL?

Есть ли ACID в SoQoL? Пока упаковываем альфу, ответим на часто задаваемый нам вопрос, как в Соколе с ACID.

Сразу успокоим  — мы создаем классическую реляционную СУБД с точки зрения пользователя, которая работает с данными в памяти и на диске и имеет все классические элементы СУБД. Сокол — полностью транзакционная система.

  1. Атомарность (А) — Сокол обеспечивает атомарность операций и гарантирует, что никакая транзакция не будет зафиксирована в системе частично.
  2. Согласованность (C) — транзакции в нашей СУБД, как и в других классических, фиксируют только допустимые операции, которые сохраняют согласованность данных.
  3. Изолированность (I) — мы поддерживаем режимы изоляции... и будем их развивать.
  4. Долговечность (D) — все изменения, сделанные успешно завершенными транзакциями, будут сохранены после возвращения системы в работу после, например, обесточивания или сбоев в оборудовании.

Посредством чего реализуется ACID в классических СУБД и Соколе?
Атомарность и долговечность — обеспечиваются журналом WAL. Консистентность и изолированность обеспечивается механизмами MVCC и иерархическими блокировками.

Как видим, требования ACID обеспечиваются в Соколе теми же механизмами, что и в других СУБД. Вопрос только в том, как они реализованы. С точки зрения философии Сокола, все должно быть построено на неблокирующих (lock-free) подходах. А как же упомянутые выше блокировки, спросите вы? Это же противоречит lock-free подходу. Как бы это парадоксально не звучало, но блокировки в Соколе тоже реализуются с использованием неблокирующих подходов!

Следите за новостями и задавайте вопросы в нашем телеграм-канале @soqol_dbms