Skip to content

Commit e3c1133

Browse files
committed
fix
1 parent 1733c24 commit e3c1133

1 file changed

Lines changed: 23 additions & 2 deletions

File tree

tools/bigkey_analyzer/bigkey_analyzer.cc

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,17 @@
2525
#include "storage/src/lists_meta_value_format.h"
2626
#include "storage/src/custom_comparator.h"
2727

28+
// Comparator instances
29+
const rocksdb::Comparator* ListsDataKeyComparator() {
30+
static storage::ListsDataKeyComparatorImpl ldkc;
31+
return &ldkc;
32+
}
33+
34+
const rocksdb::Comparator* ZSetsScoreKeyComparator() {
35+
static storage::ZSetsScoreKeyComparatorImpl zskc;
36+
return &zskc;
37+
}
38+
2839
// Utility function to check if a directory exists
2940
bool DirectoryExists(const std::string& path) {
3041
struct stat st;
@@ -478,7 +489,13 @@ void AnalyzeZsets(const std::string& path, std::vector<KeyInfo>& key_infos, cons
478489

479490
// 添加所有列族到描述符
480491
for (const auto& cf_name : column_families) {
481-
cf_descriptors.emplace_back(cf_name, rocksdb::ColumnFamilyOptions());
492+
if (cf_name == "score_cf") {
493+
rocksdb::ColumnFamilyOptions score_cf_ops;
494+
score_cf_ops.comparator = ZSetsScoreKeyComparator();
495+
cf_descriptors.emplace_back(cf_name, score_cf_ops);
496+
} else {
497+
cf_descriptors.emplace_back(cf_name, rocksdb::ColumnFamilyOptions());
498+
}
482499
}
483500

484501
std::vector<rocksdb::ColumnFamilyHandle*> handles;
@@ -652,7 +669,11 @@ void AnalyzeLists(const std::string& path, std::vector<KeyInfo>& key_infos, cons
652669
rocksdb::DBOptions db_options;
653670
std::vector<rocksdb::ColumnFamilyDescriptor> column_families;
654671
column_families.emplace_back(rocksdb::kDefaultColumnFamilyName, rocksdb::ColumnFamilyOptions());
655-
column_families.emplace_back("data_cf", rocksdb::ColumnFamilyOptions());
672+
673+
// 使用自定义比较器
674+
rocksdb::ColumnFamilyOptions data_cf_ops;
675+
data_cf_ops.comparator = ListsDataKeyComparator();
676+
column_families.emplace_back("data_cf", data_cf_ops);
656677

657678
std::vector<rocksdb::ColumnFamilyHandle*> handles;
658679
rocksdb::DB* db;

0 commit comments

Comments
 (0)