gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 05:10:45 26 4
gpt4 key购买 nike

我读过 CAP 定理和 NoSQL 数据最终一致性问题。据我了解,您可以实现完全一致性或完全可用性,但不能同时实现。因此,如果您获得更高的性能,您可能会得到陈旧的数据/部分交易。据我了解,目前还没有针对集群数据存储的解决方案。

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

问题: Hazelcast 如何强制执行完整的数据一致性?这可能是因为它基于 RAM 并且可能不关心可用性(意味着无论如何都提供了可用性)?

最佳答案

我只能为 Hazelcast 负责。我们对数据进行了分区,这意味着我们对 key 进行序列化,获取序列化字节数组的哈希码并使用 partitionCount 进行修改。

partitionId = hashcode(serialize(key)) % partitionCount

现在每个 partitionId 都注册到单个节点(+ 备份节点)。如果您对给定的键进行变异操作,则此操作将发送给分区的所有者,他会一个接一个地应用一个操作。因此,您始终对每个分区有一个一致的 View ,并且获取操作就像其他所有操作一样排队,因此对于单个分区,没有机会看到过时的数据。

如果您使用近缓存,您肯定会在一个轻微的时间窗口中结束,在这个时间窗口中,所有者已经应用了一个突变,但近缓存尚未失效(网络延迟)。

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

关于java - IMDG (Hazelcast) 如何加强数据一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28645304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com