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

Multiple maps in a single partition in hazelcast map

我有两个 hazelcast 地图定义如下。

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

我知道密钥被序列化(被转换成一个 byte[] 数组)然后被散列并且其结果是 'mod' 没有分区。这为我们提供了将存储数据的分区的 ID。此外,根据每个成员中的分区 table,它标识分区的所有者。这意味着具有相同 empKeyemployeeObjfamily 对象将存储在同一分区中。

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

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

This follows that both employeeObj and family object withe the same empKey will be stored in the same partition.

正确。

I would like to know what happens after this step. I understand that keys are stored as com.hazelcast.nio.serialization.Data class (binary form). Will there be​ ​ separate hash buckets maintained for each hashmap whose key is present in a given partition, for faster access ?

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