【问题标题】:what is the cost of using `checksumHeaderBypass` in mapdb?在 mapdb 中使用 `checksumHeaderBypass` 的成本是多少?
【发布时间】:2020-01-10 00:59:08
【问题描述】:

我们正在使用 mapdb 存储在长时间运行的进程中访问过的文件列表,这样如果我们需要中止或进程崩溃,我们可以从中断的地方继续。

我们希望防止崩溃破坏我们的 mapdb 文件存储。

所以我们使用定期提交更改到磁盘的事务。

但后来我注意到一些有趣的事情,如果我们在某些时候崩溃我们的进程,我们仍然会收到错误

标头校验和损坏。商店未正确关闭,可能已损坏。使用DBMaker.checksumHeaderBypass() 恢复您的数据。将来使用干净关闭或启用事务来保护商店。

但确实设置checksumHeaderBypass 会使错误消失。使用此checksumHeaderBypass 设置的成本是多少?

【问题讨论】:

    标签: java consistency mapdb


    【解决方案1】:

    如果您在 springboot 应用程序中使用 @postcontruct 中的 mapdb 会引发此错误。避免在应用启动前初始化mapdb(不要从@postconstruct初始化)。

    【讨论】:

      【解决方案2】:

      这里没有任何流量,因为在 sof 上有很多 mapdb 人。所以我会发布我认为最好的答案

      基本上,如果您允许校验和标头绕过,您可以加载 mapdb,但它可能在 mapdb 中有无效条目。因为如果校验和不匹配,则表明内容不是应有的内容。所以你可能会在 mapdb 中有一些错误的数据。取决于您提交存储的频率,可能会导致大量或少量数据损坏。

      【讨论】:

        猜你喜欢
        • 2010-09-16
        • 2013-06-27
        • 2011-04-10
        • 1970-01-01
        • 2011-05-17
        • 2012-05-13
        • 1970-01-01
        • 1970-01-01
        • 2010-11-15
        相关资源
        最近更新 更多