在hazelcast地图中的单个分区中的多个地图

时间:2015-10-06 14:25:35

标签: java hazelcast distributed-caching distributed-cache hazelcast-imap

我有两个定义如下的淡褐色地图。

IMap<EmpKey, Employee> employeeMap = hazelcastInstance.getMap("employeeMap");
IMap<EmpKey, EmployeeFamily> familyMap = hazelcastInstance.getMap("familyMap");

我理解密钥被序列化(转换成byte []数组),然后进行散列,其结果是&#39; mod&#39;没有分区。这为我们提供了存储数据的分区的ID。此外,从每个成员的分区表中,它标识分区的所有者。这样,同一employeeObj的{​​{1}}和family对象都将存储在同一分区中。

我想知道在这一步之后会发生什么。我知道密钥存储为com.hazelcast.nio.serialization.Data类(二进制形式)。会有吗? 为每个哈希映射维护单独的哈希桶,其密钥存在于给定的分区中,以便更快地访问?

我理解分区计数是可配置的,但在修改任何配置之前我想知道一些内部。

1 个答案:

答案 0 :(得分:1)

  

这样,employeeObj和具有相同empKey的family对象都将存储在同一个分区中。

正确。

  

我想知道在这一步之后会发生什么。我知道密钥存储为com.hazelcast.nio.serialization.Data类(二进制形式)。是否会为每个散列映射维护单独的散列桶,其密钥存在于给定的分区中,以便更快地访问?

每个IMap都获得完全私有的内部存储(它将获得自己的ConcurrentHashMap实例作为支持结构)。所以你将有单独的hashbucket。

相关问题