putAll使用Hazelcast IMap导致单个store()调用

时间:2015-10-18 15:37:43

标签: java hazelcast hazelcast-imap

我有一个由MapStore实现支持的简单地图。 当我在地图上调用putAll()时,传递要添加到地图的键值对的映射,Hazelcast由于某种原因在MapStore上为每个值调用store()方法,而不是一次调用storeAll()。 / p>

不确定为什么会出现这种情况。是否支持hazelcast地图的putAll / storeAll关系?

谢谢, 康拉德

1 个答案:

答案 0 :(得分:2)

Hazelcast支持不同的持久模式。通读,直写和后写模式。

仅在后写模式下支持storeAll()deleteAll()等批量写入操作。因此,在您的情况下,您需要启用write-behind模式才能使用storeAll()

为了打开&#34;后写模式,您需要将config xml中的<write-delay-seconds>设置为大于0的值。将<write-delay-seconds>配置为&#39; x&#39;秒意味着修改后的条目将在&#39; x&#39;之后异步地存储到商店。秒。

示例配置:

<map name="employeesMap">
    <map-store enabled="true">
        <class-name>main.jdbc.EmployeeMapStore</class-name>
        <write-delay-seconds>10</write-delay-seconds>
    </map-store>
</map>

我还想向您推荐一个与此主题相关的好读物。

http://docs.hazelcast.org/docs/3.5/manual/html/map-persistence.html