Hazelcast靠近缓存 - 巨大的延迟

时间:2017-05-29 07:36:29

标签: caching hazelcast

我的地图中存储了3个对象 - 每个对应几MB。它们不会更改,因此在节点上本地缓存它们是有意义的。在我意识到平均获得延迟很大并且减慢我的计算速度之前,这就是我认为我正在做的事情。看到那个hazelcast控制台:

Hazelcast console view

这让我想知道它从何而来。是我认为最初发生的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>

实际的问题是为什么在近缓存中存在如此多的未命中,并且它是否可能来自那么大的平均得到延迟?

1 个答案:

答案 0 :(得分:2)

管理中心显示的延迟是请求命中服务器后的延迟。如果你有一个近缓存并且你点击了近缓存,那么它将不会显示在Man.Center上。我怀疑你不会从你的应用程序中观察到高延迟。我看到有34个事件。我假设此条目已更新。当条目更新时,它将从近缓存中逐出。随后的读取将命中服务器。