2.11. 数据一致性


驻留在分布式系统上的数据容易受到临时网络中断、系统故障或只是简单人为错误造成的错误。这些外部因素不可控制,但可能会给数据质量造成严重后果。数据损坏的影响范围从降低客户的满意度到导致服务不可用的昂贵系统协调。

Data Grid 可以执行 ACID (atomic、consistent、isolated、durable)事务,以确保缓存状态一致。

事务是 Data Grid caries 作为单个操作的操作序列。事务中的所有写入操作都成功完成,或者全部失败。这样,事务会以一致的方式修改缓存状态,提供读取和写入的历史记录,或者根本不修改缓存状态。

启用事务的主要性能问题是在具有一致数据集和增加降低写入吞吐量的延迟之间找到平衡。

使用事务写入锁定

配置错误的锁定模式可能会对您的事务的性能造成负面影响。正确的锁定模式取决于您的数据网格部署是否有高或低键争用率。

对于具有低竞争率的工作负载,其中两个或更多个交易可能同时写入同一密钥,则最佳锁定提供了最佳性能。

在事务提交前,数据网格在键上获取写入锁定。如果键竞争,获取锁定所需的时间可能会延迟提交。另外,如果 Data Grid 检测到冲突的写入,那么它将回滚事务,应用程序必须重试,从而增加延迟。

对于具有高竞争率的工作负载,pessimistic locking 可提供最佳性能。

当应用程序访问密钥时,数据网格会在密钥上获取写锁,以确保没有其他事务可以修改密钥。事务提交在单个阶段完成,因为密钥已被锁定。带有多个关键事务的 pessimistic 锁定会导致 Data Grid 锁定密钥更长的时间,这可能会降低写入吞吐量。

读取隔离

隔离级别不会影响 Data Grid 性能考虑,除了使用 REPEATABLE_READ 进行最佳锁定。通过此组合,Data Grid 检查写入 skews 以检测冲突,这可能会导致较长的事务提交阶段。Data Grid 还使用版本元数据来检测冲突的写入操作,这可以增加每个条目的内存量,并为集群生成额外的网络流量。

事务恢复和分区处理

如果网络因分区或其他问题造成不稳定,则数据网格可以将事务标记为"in-doubt"。当数据网格保留其获取的写锁时,直到网络稳定且集群返回到正常运行状态。在某些情况下,系统管理员可能需要手动完成任何 "in-doubt" 事务。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat