mercredi 30 novembre 2016

Rocksdb background threads are working after deleting db instance

My start up method:

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);

My shutdown method:

for (auto handle : _handles) {
    delete handle;
}
delete _db->GetBaseDB();

But after shutdown is completed, I'm still getting merge requests with stack under rocksdb::DBImpl::BGWorkCompaction(void * arg), which of course fail because all column family handles were disposed of.

How can I mark any compaction or flushing to stop? Deleting db instance doesn't seem to be enough.

Aucun commentaire:

Enregistrer un commentaire