填充内存数据网格Hazelcast的最快方法

时间:2016-03-28 21:10:51

标签: java caching datagrid hazelcast in-memory

填充Hazelcast数据网格的最快方法是什么。阅读文档我可以看到几种变体:

  1. 使用多线程和IMap.set
  2. 使用多线程和IMap.putAll
  3. 使用分布式执行以开始从所有参与者填充网格。
  4. 我的性能基准测试显示IMap.putAll比IMap.Set更快。但是,Hazelcasty文档中指出,IMap.putAll并不保证所有内容都将以原子方式插入。

    有人可以澄清一下用数据填充数据网格的最快方法吗?

    3号变种好吗?

1 个答案:

答案 0 :(得分:1)

我会看到相同的三个选项。无论如何,如你所提到的,选项二并不保证所有内容都是以原子方式放入地图中,但是如果你只是加载数据并等待所有线程使用IMap :: putAll完成加载数据,你应该没问题。

除了IMap :: set之外,还有其他选择。在任何情况下,您都希望多线程加载过程。我会玩一些不同的线程号,并且通常建议从客户端加载数据以保持节点空闲以进行存储操作。

我个人从未对你的第三个选项进行基准测试,无论如何它也是可能的。只是不确定这是值得的额外工作。

你想加载多少数据,你担心它可能会很慢?你知道加载速度慢吗?你使用Java Serialization(这是一个巨大的性能杀手)?您是否使用索引(在放置数据时必须生成索引)?

通常会有很多优化应用于加速,不仅是数据加载,还包括正常操作。