如何为下面的用例实现部分数据的复制

djp7away  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(285)

我想构建一个具有以下数据复制要求的系统。在所附图片中:
节点1有2个实体实体实体1和实体2。
每个实体都有多行数据,例如(行1、行2、行3)
节点2和节点3是节点1的完整副本,可能位于同一数据中心。
节点4位于完全不同的位置,只有entity1和entity2的第1行。
节点5位于另一个位置,只有来自实体1和实体2的行2。
这个想法是node4和node5将位于用户系统的地理位置附近,如果网络关闭,用户可以与node4和node5中的本地副本通信。
在正常工作日-可以限制对节点1的所有写入,并允许节点4或节点5仅在节点1关闭时进行写入。
我不知道哪一个数据库可以支持这没有广泛的管理,通过代码。
数据模型复制
到目前为止,我发现:
cassandra可以进行基于键空间的复制,但这可能很棘手,因为我有2000多个远程位置用于部分数据。我可以考虑说200个键空间,其中10个位置共享同一个键空间,这样就减少了开销,即使复制到本地节点的数据对它们并不总是有用。
mongodb对这个特性有一个开放的请求(https://jira.mongodb.org/browse/server-1559)
couchbase有基于xdcr的过滤,这看起来是一个潜在的解决方案。
你能告诉我我的理解是否正确吗?

bfhwhh0e

bfhwhh0e1#

是的,couchbase xdcr是一个可行的解决方案。你可以1。将节点1、节点4和节点5设置为三个独立的数据集群2。使用仅匹配第13行的筛选表达式设置从节点1到节点4的单向xdcr。使用仅匹配第2行的筛选表达式设置从节点1到节点5的单向xdcr。
有关更多信息,请参阅https://docs.couchbase.com/server/6.0/learn/clusters-and-availability/xdcr-overview.html. xdcr过滤位于:https://docs.couchbase.com/server/6.0/learn/clusters-and-availability/xdcr-filtering.html

相关问题