LINUX.ORG.RU

История изменений

Исправление aist1, (текущая версия) :

А, CORFU, знаю))

Да, идея такая. Но CORFU это не совсем Datomic. То, что сейчас близко к CORFU — это Zoned Storage (ZS).

ФСД — это фундаментально больше, чем просто лог операций, потому что версии, хранящиеся в логе, сразу материализованы и немедленно доступны для чтения. Обычная же СУБД с WAL пишет данные дважды: один раз в основное хранилище, а второй раз — в WAL. ZS делается для WAL и для LSM, а не для SWMR-CoW (к моему большому сожалению). «Цена вопроса» такого функционального лога — это то, что лог размера O(M) превращается в лог размера O(M*log(N)), так как каждый апдейт — это O(log(N)), где N — размер датасета. Материализованные версии даже в ФСД — дорогое удовольствие :)

SWMRStore в Мемории — это по сути этот самый виртуальный кольцевой буфер над линейным массивом блоков. Версия — снимок всего диска, для которого хранятся только измененные блоки. Новые блоки никогда не перезатирают уже записанные предыдущими версиями, пока их версии не будут явным образом удалены. Над всем этим — функциональный аллокатор блоков, умеющий в откат на предыдущую consistency point.

У меня есть планы сделать SWMRStore модульным, нарезать на слои и всё хорошенько документировать «от и до». Будет учебное пособие по хранилищам на основе функциональной модели данных.

Исходная версия aist1, :

А, CORFU, знаю))

Да, идея такая. Но CORFU это не совсем Datomic. То, что сейчас близко к CORFU — это Zoned Storage (ZS).

ФСД — это фундаментально больше, чем просто лог операций, потому что версии, хранящиеся в логе, сразу материализованы и немедленно доступны для чтения. Обычная же СУБД с WAL пишет данные дважды: один раз в основное хранилище, а второй раз — в WAL. ZS делается для WAL и для LSM, а не для SWMR-CoW (к моему большому сожалению).

SWMRStore в Мемории — это по сути этот самый виртуальный кольцевой буфер над линейным массивом блоков. Версия — снимок всего диска, для которого хранятся только измененные блоки. Новые блоки никогда не перезатирают уже записанные предыдущими версиями, пока их версии не будут явным образом удалены. Над всем этим — функциональный аллокатор блоков, умеющий в откат на предыдущую consistency point.

У меня есть планы сделать SWMRStore модульным, нарезать на слои и всё хорошенько документировать «от и до». Будет учебное пособие по хранилищам на основе функциональной модели данных.