如何完全关闭Rocksdb?

时间:2018-09-22 20:08:00

标签: rocksdb

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

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

1 个答案:

答案 0 :(得分:3)

在rocksdb中运行着许多后台进程,例如Compactation,memtable flush,这些进程由单独的线程处理。为了安全地关闭ROCKSDB,您必须取消所有正在运行的后台作业。

CancelAllBackgroundWork(bool);

在关闭数据库之前调用此函数。传递布尔值作为参数,是要立即终止还是要等待后台作业完成然后终止。

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