Динамическая векторная реконструкция часов с несколькими узлами

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

Например, у меня есть 3 узла с (упрощенными) идентификаторами "a", "b" и "c" и часами 3, 6 и 4. Чтобы не хранить их как "a:3-b:6-c:4" Я присоединяю идентификаторы к "a\nb\nc" и создаю из этого хеш. В конце у меня есть строка с "hash:3-6-4", чтобы векторные часы были короткими, даже с большим количеством узлов.

Эти динамические векторные часы должны иметь возможность добавлять новые узлы с увеличением времени. Например, если мы добавим "d:1" к векторным часам выше, я беру хэш "a\nb\nc\nd" и присоединяю его к "hash:3-6-4-1".

Если я теперь получу эти векторные часы на любом узле, я хочу иметь возможность восстановить идентификаторы из хэша, чтобы работать с ними локально. Текущая реализация, которую я имею, не применима для более чем 15 узлов одновременно, поскольку восстановление идентификаторов из хэша слишком дорого.

Есть ли эффективный алгоритм или структура данных, которая позволила бы мне более разумно решить эту проблему?

Большое спасибо заранее за ваш вклад.

0 ответов

Другие вопросы по тегам