通过慢速网络比较巨大的树木

时间:2013-05-15 09:58:17

标签: algorithm hash tree comparison

我有一个像数据结构的树:

  • 我有一份工单
  • 每个工单都有几项操作
  • 每个操作都有多个角色
  • 每个角色都有多个资源节点

每个工单,操作,角色和资源节点都有许多属性。

我有两个这样的数据结构实例:主服务器和从服务器。我希望定期更新slave并使其与master同步。我的问题是:我怎么做得很快?

问题是:

  1. 这两个实例是巨大的
  2. 这两个实例位于不同的网络上,通过低吞吐量网络连接
  3. 速度是关键参数
  4. [edit] 4.我无法访问master上的事务日志,只是此时master的状态(我对SQL视图只有读访问权,就是这样)。的 [/编辑]

    我在想的是通过将节点ID,节点属性和子节点的哈希散列在一起来创建两侧的Merkle树(显然是自下而上)。

    然后通过以下方式比较树木:

    1. 通过网络传输顶级哈希列表
    2. 确定不相等的节点
    3. 递归地重复节点不匹配的过程
    4. 因此,我得到一个不同步的节点列表,然后我更新它们。

      我在这里看到的问题是,每次比较实例时我都必须重新创建两个Merkle树,这需要花费时间。

      所以,我想知道是否还有其他可以尝试的算法?

0 个答案:

没有答案