我使用 createOrRecoverPersistedTo 方法创建了一个编年史地图。但是在重新启动 jvm 进程后,一些条目消失了。输入条目后需要多长时间才能保留最新的键值?是否有强制保留最新数据?
问问题
96 次
1 回答
0
从理论上讲,除非发生一些“失败”事件,例如 JVM 进程崩溃或终止,或服务器关闭,否则您不应该等到条目被持久化,操作系统内存子系统会处理这些。
正如这里详细解释的那样,createOrRecoverPersistedTo()
在“正常”服务器重启后使用(此外,只是 JVM 进程重启)是一种有害的反模式。你应该简单地使用createPersistedTo()
.
此外,在最近的问题中,当 ChronicleMap 在没有灾难性事件的情况下恢复时,也报告了条目消失,这可能是 Chronicle Map 中恢复过程中的一个错误。
如果您重新启动服务器,映射内存可能不会完全刷新到文件中,例如在 Linux 中,应该刷新内存时的“安全”超时在“vm.dirty_expire_centisecs”配置(google it)中定义,默认情况下应该是 30 秒.
于 2016-09-06T18:49:34.823 回答