我有一个类似树的数据结构:
- 我有一份工单清单
- 每个工单都有几个操作
- 每个操作都有几个角色
- 每个角色都有几个资源节点
每个工单、操作、角色和资源节点都有许多属性。
我有这样的数据结构的两个实例:主和从。我希望定期更新从站并使其与主站同步。我的问题是:我怎样才能真正快速地做到这一点?
问题是:
- 这两个实例很大
- 这两个实例位于不同的网络上,通过低吞吐量网络连接
- 速度是关键参数
[编辑] 4. 我无权访问 master 上的事务日志,只有此时 master 的状态(我只有 SQL 视图的读取权限,仅此而已)。[/编辑]
我当时的想法是通过将节点 ID、节点属性和子节点的哈希值(显然是自下而上)哈希在一起,在两边创建 Merkle 树。
然后通过以下方式比较树木:
- 通过网络传输顶级哈希列表
- 确定不相等的节点
- 递归地重复不匹配节点的过程
因此,我得到了一个不同步的节点列表,然后我更新了它们。
我在这里看到的问题是,每次比较实例时我都必须重新创建两个 Merkle 树,这会耗费时间。
所以,我想知道是否有任何其他算法可以尝试?