【问题标题】:How can I shutdown Rocksdb completely?如何完全关闭 Rocksdb?
【发布时间】:2018-09-22 20:07:59
【问题描述】:

我在应用程序中使用 Rocksdb,在关闭所有数据库实例后,我仍然看到正在运行的线程 Rocksdb::ThreadPoolImpl::Impl::BGThread(unsigned long) ()

所以当我关闭应用程序时,我会收到一个 libc++abi.dylib: terminating 我认为是由于上述错误。 如何避免这种情况并确保这些线程已关闭? 谢谢

【问题讨论】:

    标签: rocksdb


    【解决方案1】:

    rocksdb 中运行着一堆后台进程,例如 Compaction、memtable flush,它们由单独的线程处理。要安全地关闭 ROCKSDB,您必须取消所有正在运行的后台作业。

    CancelAllBackgroundWork(bool);
    

    在关闭数据库之前调用这个函数。传递一个布尔值作为参数,无论您是想立即终止还是等待后台作业完成然后终止。

    现在调用 rocksdb_close() 将完全关闭数据库

    【讨论】:

      猜你喜欢
      • 2020-07-21
      • 2013-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-15
      相关资源
      最近更新 更多