我的地图中存储了3个对象 - 每个对应几MB。它们不会更改,因此在节点上本地缓存它们是有意义的。在我意识到平均获得延迟很大并且减慢我的计算速度之前,这就是我认为我正在做的事情。看到那个hazelcast控制台:
这让我想知道它从何而来。是我认为最初发生的90和48次失误?计算是并行运行的,所以我认为他们都可以在条目被缓存之前发出一个请求,因此所有这些都不会从此时的近缓存中受益。那么它是一些预加载方法,以便我在触发所有这些并行任务之前运行它吗?顺便说一句。为什么输入内存为0,即使该近缓存数据表中有条目?
这是我的地图配置:
<map name="commons">
<in-memory-format>BINARY</in-memory-format>
<backup-count>0</backup-count>
<async-backup-count>0</async-backup-count>
<eviction-policy>NONE</eviction-policy>
<near-cache>
<in-memory-format>OBJECT</in-memory-format>
<max-size>0</max-size>
<time-to-live-seconds>0</time-to-live-seconds>
<max-idle-seconds>0</max-idle-seconds>
<eviction-policy>NONE</eviction-policy>
<invalidate-on-change>true</invalidate-on-change>
<cache-local-entries>true</cache-local-entries>
</near-cache>
</map>
实际的问题是为什么在近缓存中存在如此多的未命中,并且它是否可能来自那么大的平均得到延迟?
答案 0 :(得分:2)
管理中心显示的延迟是请求命中服务器后的延迟。如果你有一个近缓存并且你点击了近缓存,那么它将不会显示在Man.Center上。我怀疑你不会从你的应用程序中观察到高延迟。我看到有34个事件。我假设此条目已更新。当条目更新时,它将从近缓存中逐出。随后的读取将命中服务器。