gpt4 book ai didi

c++ - Berkeley DB:DbEnv::lsn_reset 需要很长时间

转载 作者:行者123 更新时间:2023-11-28 06:53:34 24 4
gpt4 key购买 nike

我正在使用 Berkeley DB 和一个可能相对较大的数据库文件(2.1 GiB,使用 btree 格式以防万一)。在应用程序关闭期间,调用 DbEnv::lsn_reset 以便在退出应用程序之前“刷新”所有内容。对于大型数据库,这个例程对我来说需要很长时间——至少 10 分钟左右,在此期间会发生大量磁盘访问。

这是正常现象还是以某种错误方式使用 Berkeley DB 的结果?有什么办法可以加快处理速度吗?特别是,可以调整哪些参数来提高性能?

最佳答案

DbEnv::lsn_reset() 可能不是您想要的。该函数重写数据库中的每一页,以便您可以关闭数据库并在不同的环境中打开它们。它将至少写出 2.1 GiB,而且速度非常慢。

如果您只是关闭应用程序以便稍后重新启动,您可能只想执行 DbEnv::txn_checkpoint() 来刷新数据库日志并插入检查点记录。不过,这也不是必需的。只要您将日志提交到稳定存储,您就可以简单地退出您的应用程序。

http://docs.oracle.com/cd/E17276_01/html/api_reference/CXX/txncheckpoint.html

关于c++ - Berkeley DB:DbEnv::lsn_reset 需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23458063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com