Мой метод запуска:
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
запросы со стеком под rocksdb::DBImpl::BGWorkCompaction(void * arg)
что, конечно, не удастся, потому что все ручки семейства столбцов были удалены.
Как я могу пометить любое уплотнение или промывку, чтобы остановить? Удаление экземпляра базы данных, кажется, не достаточно.
Задача ещё не решена.
Других решений пока нет …