2.7. 持久性存储


配置数据网格以与持久数据源交互可大大影响性能。这种性能损失源自于更传统的数据源本质上比内存缓存慢。当调用在 JVM 外部时,读取和写入操作始终会花费更长的时间。根据您使用缓存存储的方式,但数据网格性能的减少是性能的偏移,这比访问持久性存储中的数据提高。

使用持久性存储配置 Data Grid 部署也会带来其他好处,例如,您可以为安全集群关闭保留状态。您还可以将缓存中的数据溢出到持久性存储,并获得超过内存中可用容量。例如,您可以总计有十百万个条目,同时在内存中只保留 200万个条目。

Data Grid 以直写模式或 write-behind 模式为缓存和持久存储添加键/值对。由于这些编写模式对性能有不同影响,因此在规划数据网格部署时您必须考虑它们。

Expand
编写模式对性能的影响

直写

Data Grid 同时将数据写入缓存和持久性存储,从而提高了一致性并避免出现节点故障导致的数据丢失。

直写模式的不足是同步写入会增加延迟并降低吞吐量。cache.put () 调用会导致应用程序线程等待写入持久性存储。

write-behind

Data Grid 同步将数据写入缓存,但然后向队列添加修改,以便异步执行对持久性存储的写入,这会降低写入操作的延迟。

当缓存存储无法处理写入操作数量时,Data Grid 会延迟新的写入,直到待处理写入操作的数量低于配置的修改队列大小下,这与 write-through 类似。如果存储通常足够快,但在缓存写入突发时会出现延迟激增,您可以增加修改队列大小来包含突发并减少延迟。

passivation

启用传递配置 Data Grid,仅在从内存驱除条目时将条目写入持久性存储。传递还意味着激活。对键执行读取或写入会将该密钥重新置于内存中,并将其从持久性存储中删除。在激活过程中从持久性存储中删除密钥不会阻断读取或写入操作,但它会增加外部存储的负载。

传递和激活可能会导致 Data Grid 为缓存中给定条目执行多个调用持久性存储。例如,如果一个条目在内存中不可用,Data Grid 会将它重新置于内存中,它是一个读取操作,以及从持久性存储中删除它的 delete 操作。另外,如果缓存达到大小限制,则 Data Grid 会执行另一个写入操作来传递新被驱除的条目。

使用数据预加载缓存

影响数据网格集群性能的持久性存储的另一个方面是预加载缓存。当 Data Grid 集群启动时,此功能会将缓存填充到数据,以便它们"warm",并可以直接处理读取和写入。预加载缓存可能会减慢 Data Grid 集群启动时间,如果持久性存储中的数据量大于可用 RAM 的数量,则会导致内存异常。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat