在hazelcast map中,单个分区中的多个映射



我有两个定义如下的hazelcast映射。

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

我理解键被序列化(被转换成一个byte[]数组),然后被散列,其结果是'mod'没有分区。这为我们提供了将存储数据的分区的id。此外,从每个成员中的分区表中,它确定分区的所有者。因此,具有相同empKeyemployeeObjfamily对象将存储在同一个分区中。

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

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

这意味着具有相同empKey的employeeObj和family object将被存储在同一个分区中。

正确的。

我想知道这一步之后会发生什么。我知道键被存储为com.hazelcast.nio.serialization.Data类(二进制形式)。是否会为每个键存在于给定分区中的哈希映射维护单独的哈希桶,以提高访问速度?

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

最新更新