Рубрики
Без рубрики

Скользящие, безопасные хэши для узлов в дереве / Как уменьшить потребление места на диске?

Привет всем, я реализовал хранение скользящих безопасных хэшей для временного хранилища документов под названием… Помечено как справка, обсуждение, java, kotlin.

Привет всем,

Я реализовал хранение скользящих безопасных хэшей для временного хранилища документов под названием SirixDB .

Во время массовых вставок хэши создаются при обходе построенного дерева в postorder. Во время обновлений, то есть удалений, вставок или обновлений значений, хэши узлов-предков адаптируются. У нас есть уникальные идентификаторы узлов, и хэши строятся с учетом соседних узлов (64-разрядные идентификаторы узлов, указывающие на родственные узлы).

Например, во время обновления старый хэш вычитается, а новый хэш в основном добавляется к родительскому узлу, и это всплывает для всех предков.

Теперь я хотел свести возможность столкновения к минимуму и использовал Sha256, усеченный до 128 бит.

Однако теперь каждый узел необязательно хранит этот хэш, который составляет дополнительные 16 байт.

Моя идея состояла бы в том, чтобы сохранить все хэши узлов в начале страницы переменного размера в дельта-кодировке, например, вычитая каждый последовательный хэш из первого и сохраняя какую-то кодировку переменного размера.

Есть ли у вас какие-либо идеи, как наилучшим образом “сжать” хэши на диске? В настоящее время на странице хранится не более 512 узлов, что означает 512 * 16 байт только для хэшей.

С уважением, Йоханнес

Оригинал: “https://dev.to/johanneslichtenberger/rolling-secure-hashes-for-nodes-in-a-tree-how-to-reduce-on-disk-space-consumption-i73”