【问题标题】:How to prevent hazelcast MapStore to load entries before store如何防止hazelcast MapStore在存储之前加载条目
【发布时间】:2016-05-20 09:11:35
【问题描述】:

根据specification,使用直写模式时,Hazelcast 执行以下操作:

MapStore 可以通过设置 write-delay-seconds 属性为 0。这意味着条目将被放置 同步到数据存储。

在这种模式下,当 map.put(key,value) 调用返回时:

MapStore.store(key,value) 被成功调用,所以入口是 坚持。内存中的条目已更新。内存中的备份副本是 在其他集群成员上成功创建(如果备份计数为 大于 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);

如何防止这样的负载?

【问题讨论】:

    标签: hazelcast


    【解决方案1】:

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

    【讨论】:

    • + 是的,它有效。但它是 IMap 特定的方法。为什么 Map.put 有不同的行为?
    • @S.Kadakov map.put 返回键的先前值。此行为继承自 Java Map 接口
    • 啊,是的,当然……谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    相关资源
    最近更新 更多