目前,我有一个支持 MapStore 的 IMap。此 IMap 在启动时加载并具有数百万个条目。当地图完全加载时,客户端使用 Imap.values() 和谓词检索条目。这种加载对我来说在启动时工作得很好。
现在,我必须定期重新加载所有数据(例如,每 2 小时)。我正在使用 IMap.loadAll(true) 强制重新加载。MapStore (loadAllKeys() + loadAll(keys)) 大约需要 4 分钟才能完成完整的加载。似乎在这 4 分钟内,所有通过谓词向 imap 发送查询的客户端都被阻塞,直到重新加载完成。
就我而言,我无法在 4 分钟内阻塞集群(实际上一秒钟都不会)。
- 真的是 Imap.loadAll 阻塞了谓词查询吗?
- 可以将 imap 配置为非阻塞或存在 IMap.loadAll() 的非阻塞替代方案。
我正在尝试使用 HC 3.7.2,有 2 个节点和 java 8。