Skip to content

Commit ed56169

Browse files
committed
Merge branch 'BU-DiSC-master'
2 parents 2065661 + 64dc0c4 commit ed56169

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

rocksdb/rocksdb_db.cc

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ namespace {
113113

114114
namespace ycsbc {
115115

116+
std::vector<rocksdb::ColumnFamilyHandle *> RocksdbDB::cf_handles_;
116117
rocksdb::DB *RocksdbDB::db_ = nullptr;
117118
int RocksdbDB::ref_cnt_ = 0;
118119
std::mutex RocksdbDB::mu_;
@@ -195,7 +196,6 @@ void RocksdbDB::Init() {
195196
rocksdb::Options opt;
196197
opt.create_if_missing = true;
197198
std::vector<rocksdb::ColumnFamilyDescriptor> cf_descs;
198-
std::vector<rocksdb::ColumnFamilyHandle *> cf_handles;
199199
GetOptions(props, &opt, &cf_descs);
200200
#ifdef USE_MERGEUPDATE
201201
opt.merge_operator.reset(new YCSBUpdateMerge);
@@ -211,18 +211,24 @@ void RocksdbDB::Init() {
211211
if (cf_descs.empty()) {
212212
s = rocksdb::DB::Open(opt, db_path, &db_);
213213
} else {
214-
s = rocksdb::DB::Open(opt, db_path, cf_descs, &cf_handles, &db_);
214+
s = rocksdb::DB::Open(opt, db_path, cf_descs, &cf_handles_, &db_);
215215
}
216216
if (!s.ok()) {
217217
throw utils::Exception(std::string("RocksDB Open: ") + s.ToString());
218218
}
219219
}
220220

221-
void RocksdbDB::Cleanup() {
221+
void RocksdbDB::Cleanup() {
222222
const std::lock_guard<std::mutex> lock(mu_);
223223
if (--ref_cnt_) {
224224
return;
225225
}
226+
for (size_t i = 0; i < cf_handles_.size(); i++) {
227+
if (cf_handles_[i] != nullptr) {
228+
delete cf_handles_[i];
229+
cf_handles_[i] = nullptr;
230+
}
231+
}
226232
delete db_;
227233
}
228234

rocksdb/rocksdb_db.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ class RocksdbDB : public DB {
9292

9393
int fieldcount_;
9494

95+
static std::vector<rocksdb::ColumnFamilyHandle *> cf_handles_;
9596
static rocksdb::DB *db_;
9697
static int ref_cnt_;
9798
static std::mutex mu_;

0 commit comments

Comments
 (0)