Вечером и ночью смотрел и про lsm, и про wal.
Так вот, WAL это просто запись всех новых действий последовательно, insert value, delete value, commit transaction и т.д. Т.е. там нет никаких преобразований с этим логом, при откате просто идет проход в обратную сторону и восстановление данных, ну и переодическое сбрасывание этих логов в ноль, или как-то там это называлось поставить метку, по которой лог разделялся до и после, а так там идет только запись действий в конец и ничего больше, никаких сокращений лога, никаких других действий кроме тупо добавления действия в конец.
А вот LSM дерево таки очень и очень похоже на то, что я описал, с той лишь разницей, что там есть несколько уровней для слияния и есть сортировка при слиянии на новый уровень. А моя структура это похоже LSM (без дерева, просто `Log-structured merge`) с его удалением через добавление нового элемента, с его записью в конец и чтением справа налево, со слиянием, только немного не таким как в дереве, не на следующий уровень, а слияние в этот же уровень. Т.е. у меня описана структура без сортировки, без WAL, без лишне занимаего места, с полностью согласованными данными, с возвможностью слиять саму в себя без каких либо уровней