Hazelcast IMap 的加载时间

Loading time of Hazelcast IMap

我在数据库中有 100 万个条目,我必须将所有内容都放在 Hazelcast IMap 中。

那么现在如何测试IMap的加载时间呢?

您可以通过多种方式加载地图;一旦你有了执行加载的代码,你就可以做一些简单的事情,比如在加载之前和之后调用 System.currentTimeMillis() 来查看它需要多长时间。

您可以使用 Hazelcast 提供的 MapLoader 功能在成员(集群)端加载,或者编写您自己的 JDBC 代码在客户端加载条目并将它们添加到集群。您还可以将 Hazelcast Jet 用作 ingest/ETL 引擎,如果您想在加载数据时对数据进行过滤、丰富或数据转换,这将特别有用。

如果你从客户端加载,你真的想避免迭代 JDBC 结果集并一次将一个条目放入地图的天真方法 - 进行完整的往返为一百万个条目中的每一个添加到集群会降低您的性能。在我最近教授的培训 class 的实验室练习中,我将 55000 个条目的整个 table 加载到 java.util.HashMap,然后执行 IMap.putAll() 来推送在一次操作中将整个映射到 Hazelcast。

这是实验室的代码 - 它实际上用相同的数据填充了两个 tables(一个有索引,另一个没有,这让我们可以比较以后进行查询和聚合的实验室的性能).它包括关于每次加载需要多长时间的简单计时信息——毫不奇怪,当我们为 table 构建索引时它会更慢,但是对索引 table 的查询会快得多。

https://github.com/hazelcast/training-courses/blob/master/Special_Projects/mod02-db-etl-lab/src/main/java/com/hztraining/solutions/PopulateCacheWithJDBCSolution.java