3

我正在为具有多个节点的应用程序使用动态矢量时钟。每个节点都有一个唯一的 ID,该 ID 与它的时钟一起存储在矢量时钟中。我需要将矢量时钟转换为文本表示。我目前的解决方案是对作为矢量时钟一部分的所有 id 构建哈希。然而,这需要我在所有节点名称的产品空间中搜索匹配的哈希。

例如,我有 3 个节点(简化)ID 为“a”、“b”和“c”,时钟为 3、6 和 4。不要将它们存储为“a:3-b:6-c:4” ,我将 ID 加入“a\nb\nc”并从中创建散列。最后,我有一个带有“hash:3-6-4”的字符串,以保持向量时钟的简短,即使有很多节点也是如此。

随着时间的增加,这个动态矢量时钟应该能够添加新节点。例如,如果我们将“d:1”添加到上面的矢量时钟,我将“a\nb\nc\nd”的哈希值加入到“hash:3-6-4-1”中。

如果我现在在任何节点上接收到这个向量时钟,我希望能够从哈希中重建 ID,以便在本地使用它们。我目前的实现不适用于一次超过 15 个节点,因为从散列重建 ID 太昂贵了。

是否有任何有效的算法或数据结构可以让我更智能地解决这个问题?

非常感谢您的意见。

4

0 回答 0