Кажется, у нас уже есть идеальная ACID‑совместимая база данных | Метод утёнка
Кажется, у нас уже есть идеальная ACID‑совместимая база данных — это обычный /dev/null. Если переформулировать свойства ACID человеческим языком, оказывается, что этот «чёрный ящик» из Unix идеально им соответствует и отлично помогает на пальцах понять, что за каждым пунктом стоит.
Атомарность: всё, что ты пишешь в /dev/null, либо целиком «улетает в никуда», либо не пишется вовсе — никакой половинчатой записи.
Консистентность: инвариант «файл всегда пустой» выполняется при любых операциях, состояние до и после записи одно и то же.
Изоляция: сколько процессов параллельно ни лили бы данные в /dev/null, их вывод никогда не конфликтует, потому что ничего не сохраняется.
Долговечность: после ребута содержимое остаётся строго тем же, что и раньше — абсолютное ничего.
Есть только один «недочёт» такой базы — у неё ровно 0 байт доступного места, так что масштабирование хранилища придётся решать очень… творчески. Зато как учебный пример /dev/null отлично показывает, что формальные определения ACID можно довести до забавных крайностей и заодно лучше понять, чего именно хочется от реальной базы в проде.
@devs_books