我有两个定义如下的hazelcast映射。
IMap<EmpKey, Employee> employeeMap = hazelcastInstance.getMap("employeeMap");
IMap<EmpKey, EmployeeFamily> familyMap = hazelcastInstance.getMap("familyMap");
我知道键被序列化(被转换为byte []数组),然后将其散列,其结果是没有分区的“ mod”。这为我们提供了将存储数据的分区的ID。同样,从每个成员的分区表中,它标识分区的所有者。这样一来,employeeObj
与family
相同的对象empKey
都将存储在同一分区中。
我想知道此步骤之后会发生什么。我知道密钥存储为com.hazelcast.nio.serialization.Data类(二进制形式)。是否会为每个哈希图维护单独的哈希桶,这些哈希图的键存在于给定分区中,以加快访问速度?
我知道分区计数是可配置的,但是在修改任何配置之前,我想了解一些内部信息。
因此,employeeObj和具有相同empKey的家庭对象都将存储在同一分区中。
正确的。
我想知道此步骤之后会发生什么。我知道密钥存储为com.hazelcast.nio.serialization.Data类(二进制形式)。是否会为每个哈希图维护单独的哈希桶,这些哈希图的键存在于给定分区中,以加快访问速度?
每个IMap都获得其完全私有的内部存储(它将获得自己的ConcurrentHashMap实例作为后备结构)。因此,您将拥有单独的哈希桶。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句