2016-05-20 32 views
1

hazelcast MapStore加载项使用直写模式Hazelcast时根据specification做到以下几点:如何防止前店

MapStore可以被配置为写通过设置 写入延迟 - 秒属性设置为0.这意味着条目将同步地将 添加到数据存储。

在这种模式下,当map.put(键,值)调用返回:

MapStore.store(键,值)被成功调用,所以该条目是 坚持。内存条目已更新。在其他群集成员上成功创建的内存备份副本 (如果备份计数大于0的 )。

但事实上,它在存储每个条目之前执行MapStore.load(key)。 IMap的配置如下:

Config config = ... 

MapConfig mapConfig = config.getMapConfig("data-" + id); 
MapStoreConfig mapStoreConfig = mapConfig.getMapStoreConfig(); 
mapStoreConfig.setEnabled(true); 
mapStoreConfig.setImplementation(new RecordsMapStore()); 
mapStoreConfig.setWriteDelaySeconds(0); 
config.addMapConfig(mapConfig); 

如何防止这样的负载?

回答

1

尝试使用map.set()避免加载

+0

+是的,它的工作原理。但它是IMap特定的方法。为什么Map.put有不同的行为? –

+0

@ S.Kadakov'map.put'返回键的以前的值。这种行为继承自Java Map接口 –

+0

啊,是的,当然...谢谢。 –