Apache Ignite中PARTITIONED(BACKUPS=0)工作机制及节点数据获取问询
Apache Ignite PARTITIONED缓存相关问题解答
1. BACKUPS=0时PARTITIONED缓存的工作机制
- PARTITIONED模式会把整个缓存数据集拆分为多个分区(默认数量1024,可通过
partitionCount配置调整)。 - 当
BACKUPS=0时,每个分区仅存在一个实例,会根据键的哈希值计算出对应的主节点,数据只存储在这个主节点上,没有任何副本节点。 - 写入数据时:只会将数据发送到对应分区的主节点,写入成功即完成操作,不会同步到其他节点。
- 读取数据时:查询请求会先计算键对应的分区,再自动路由到该分区的主节点获取数据;若主节点下线,该分区的数据会彻底不可用(无备份可兜底)。
2. Node 3是否会从Node 1获取数据?
- 正常情况下会。当在Node 3查询某个键的数据时,如果该键对应的分区主节点是Node 1,Ignite的分布式路由机制会自动把查询请求转发到Node 1,获取数据后返回给Node 3,不会直接返回null或触发READTHROUGH去查询RDBMS。
- 你遇到的返回null/触发读穿透的情况,大概率是其他原因导致:比如插入操作未完成就发起查询、键的序列化方式不一致导致哈希计算偏差(找不到对应分区)、节点间网络通信异常、或者缓存配置了
LOCAL读取模式(仅查本地节点数据)。
内容的提问来源于stack exchange,提问作者Karthik_Rajendiran
相关产品推荐
相关产品推荐

