具有多进程应用程序的 ChronicleMap Recovery

ChronicleMap Recovery with multi process application

我们正在评估 ChronicleMap,我们的应用程序运行集群模式,节点数从 5 到 45 个不等。计划将 ChronicleMap 持久保存在共享 NFS 文件夹中,以便所有节点都可以 read/write。

在 read/write 操作的过程中,个别节点更有可能因各种原因宕机。我有一些问题

  1. 如果node-1在写操作的过程中宕机,集群中另一个健康的node-2是否还能继续read/write 到文件?
  2. 假设我们实现了一些逻辑来检测服务器崩溃并在重启时调用 .recoverPersistedTo()。当集群中的其他健康节点对文件 reading/writing 时,这会导致任何问题吗?我问这个问题的原因是文件说

“You must ensure that no other process is accessing the Chronicle Map store when calling .recoverPersistedTo()”

  1. 我读到使用 .recoverPersistedTo() 代替 createPersistedTo() 不是一个好的做法,但是什么是缺点?

首先,我们 (Chronicle) 不支持将 Chronicle Map 文件放在 NFS 上(因为我们使用内存映射,而 NFS 已知会导致问题)。此外,尝试在 NFS 上使用恢复将导致数据损坏,因为 NFS 上没有足够的文件锁定,并且恢复会尝试锁定文件以防止多个进程同时恢复。一般来说,开源 Chronicle Map 应该被同一主机上的多个进程使用。

您的问题解决方案是商用Map Enterprise,支持节点间地图复制,详情请联系sales@chronicle.software