我的启动方法:
vector<ColumnFamilyDescriptor> columnFamilies = ...
DBOptions dbOptions(options);
std::vector<int32_t> ttls = ...
DBWithTTL* _db;
std::vector<ColumnFamilyHandle*> _handles;
Status status = DBWithTTL::Open(dbOptions, WORKING_DIRECTORY, columnFamilies, &_handles, &_db, ttls, false);
我的关机方法:
for (auto handle : _handles) {
delete handle;
}
delete _db->GetBaseDB();
但是关闭完成后,我仍然收到merge
stack underrocksdb::DBImpl::BGWorkCompaction(void * arg)
的请求,这当然会失败,因为所有列族句柄都已被处理掉。
如何标记任何压实或冲洗以停止?删除数据库实例似乎还不够。