Снимок изоляции MVCC & B+ деревья
Я занимаюсь разработкой базы данных NoSQL, которая использует 64-битные B+ деревья на основе хеш-функции для некоторых своих индексов, а сейчас я рассматриваю применение управления параллелизмом Snapshot Isolation Multiversion (SI MVCC) к постоянному дереву B+.
Первая проблема, с которой я сталкиваюсь, заключается в том, что каждый узел в дереве B+ содержит указатель на следующий узел в дереве; 64-битный указатель на байтовый адрес в файле, где расположен следующий узел. Поэтому, когда я обновляю узел записи, необходимо обновить все узлы в этой ветви дерева B+ вплоть до корневого узла - есть ли лучший / более простой способ сделать это, чтобы избежать такого количества обновлений диска (обычно 4 ' / секторы диска должны обновляться при каждой записи записи, каждый узел помещается в один сектор диска)? Отдельная запись каталога, которая содержит обзор всех связанных узлов, возможно?