首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IMDG (Hazelcast)如何加强数据一致性

IMDG (Hazelcast)如何加强数据一致性
EN

Stack Overflow用户
提问于 2015-02-21 11:36:49
回答 1查看 928关注 0票数 1

我读过关于CAP定理和NoSQL数据最终一致性问题的文章。据我所知,您可以实现完全一致或完全可用,但绝不能两者兼而有之。因此,如果您获得更高的性能,您可能会得到陈旧的数据/部分事务。据我所知,目前还没有集群数据存储的解决方案。

另一方面,Hazelcast声称它对IMap强制执行完全一致。

问题:如何执行完全数据一致性?这是否可能是因为它基于RAM而可能不关心可用性(意味着无论如何都提供了可用性)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-21 14:10:47

我可以为哈泽尔卡斯特负责。我们对数据进行了分区,这意味着我们序列化了键,获取了序列化字节数组的哈希码,并使用partitionCount创建了一个模块。

partitionId = hashcode(serialize(key)) % partitionCount

现在每个partitionId都注册到一个节点(+备份节点)。如果您对给定的密钥进行了变异操作,则此操作将发送给分区的所有者,并且他将应用一个又一个操作。因此,每个分区都有一致的视图,get操作与其他所有操作一样都是排队的,因此对于单个分区,没有机会看到陈旧的数据。

如果您使用了近缓存,那么您肯定会在一个稍短的时间窗口中结束,在这个窗口中,所有者已经应用了一个突变,但是这些近缓存还没有失效(网络延迟)。

我希望这能回答你的问题:)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28645304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档