Skip to content

Commit 2afaebe

Browse files
committed
finish basics
1 parent 3ed7a38 commit 2afaebe

22 files changed

+146
-140
lines changed

src/search/indexer.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ StatusOr<FieldValueRetriever> FieldValueRetriever::Create(SearchOnDataType type,
3838
Hash db(storage, ns);
3939
std::string ns_key = db.AppendNamespacePrefix(key);
4040
HashMetadata metadata(false);
41-
auto s = db.GetMetadata(ns_key, &metadata);
41+
auto s = db.GetMetadata(Database::GetOptions{}, ns_key, &metadata);
4242
if (!s.ok()) return {Status::NotOK, s.ToString()};
4343
return FieldValueRetriever(db, metadata, key);
4444
} else if (type == SearchOnDataType::JSON) {

src/stats/disk_stats.cc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,21 +77,21 @@ rocksdb::Status Disk::GetStringSize(const Slice &ns_key, uint64_t *key_size) {
7777

7878
rocksdb::Status Disk::GetHashSize(const Slice &ns_key, uint64_t *key_size) {
7979
HashMetadata metadata(false);
80-
rocksdb::Status s = Database::GetMetadata({kRedisHash}, ns_key, &metadata);
80+
rocksdb::Status s = Database::GetMetadata(Database::GetOptions{}, {kRedisHash}, ns_key, &metadata);
8181
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;
8282
return GetApproximateSizes(metadata, ns_key, storage_->GetCFHandle(engine::kSubkeyColumnFamilyName), key_size);
8383
}
8484

8585
rocksdb::Status Disk::GetSetSize(const Slice &ns_key, uint64_t *key_size) {
8686
SetMetadata metadata(false);
87-
rocksdb::Status s = Database::GetMetadata({kRedisSet}, ns_key, &metadata);
87+
rocksdb::Status s = Database::GetMetadata(Database::GetOptions{}, {kRedisSet}, ns_key, &metadata);
8888
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;
8989
return GetApproximateSizes(metadata, ns_key, storage_->GetCFHandle(engine::kSubkeyColumnFamilyName), key_size);
9090
}
9191

9292
rocksdb::Status Disk::GetListSize(const Slice &ns_key, uint64_t *key_size) {
9393
ListMetadata metadata(false);
94-
rocksdb::Status s = Database::GetMetadata({kRedisList}, ns_key, &metadata);
94+
rocksdb::Status s = Database::GetMetadata(Database::GetOptions{}, {kRedisList}, ns_key, &metadata);
9595
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;
9696
std::string buf;
9797
PutFixed64(&buf, metadata.head);
@@ -100,7 +100,7 @@ rocksdb::Status Disk::GetListSize(const Slice &ns_key, uint64_t *key_size) {
100100

101101
rocksdb::Status Disk::GetZsetSize(const Slice &ns_key, uint64_t *key_size) {
102102
ZSetMetadata metadata(false);
103-
rocksdb::Status s = Database::GetMetadata({kRedisZSet}, ns_key, &metadata);
103+
rocksdb::Status s = Database::GetMetadata(Database::GetOptions{}, {kRedisZSet}, ns_key, &metadata);
104104
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;
105105
std::string score_bytes;
106106
PutDouble(&score_bytes, kMinScore);
@@ -112,15 +112,15 @@ rocksdb::Status Disk::GetZsetSize(const Slice &ns_key, uint64_t *key_size) {
112112

113113
rocksdb::Status Disk::GetBitmapSize(const Slice &ns_key, uint64_t *key_size) {
114114
BitmapMetadata metadata(false);
115-
rocksdb::Status s = Database::GetMetadata({kRedisBitmap}, ns_key, &metadata);
115+
rocksdb::Status s = Database::GetMetadata(Database::GetOptions{}, {kRedisBitmap}, ns_key, &metadata);
116116
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;
117117
return GetApproximateSizes(metadata, ns_key, storage_->GetCFHandle(engine::kSubkeyColumnFamilyName), key_size,
118118
std::to_string(0), std::to_string(0));
119119
}
120120

121121
rocksdb::Status Disk::GetSortedintSize(const Slice &ns_key, uint64_t *key_size) {
122122
SortedintMetadata metadata(false);
123-
rocksdb::Status s = Database::GetMetadata({kRedisSortedint}, ns_key, &metadata);
123+
rocksdb::Status s = Database::GetMetadata(Database::GetOptions{}, {kRedisSortedint}, ns_key, &metadata);
124124
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;
125125
std::string start_buf;
126126
PutFixed64(&start_buf, 0);
@@ -130,7 +130,7 @@ rocksdb::Status Disk::GetSortedintSize(const Slice &ns_key, uint64_t *key_size)
130130

131131
rocksdb::Status Disk::GetStreamSize(const Slice &ns_key, uint64_t *key_size) {
132132
StreamMetadata metadata(false);
133-
rocksdb::Status s = Database::GetMetadata({kRedisStream}, ns_key, &metadata);
133+
rocksdb::Status s = Database::GetMetadata(Database::GetOptions{}, {kRedisStream}, ns_key, &metadata);
134134
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;
135135
return GetApproximateSizes(metadata, ns_key, storage_->GetCFHandle(engine::kStreamColumnFamilyName), key_size);
136136
}

src/storage/redis_db.cc

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -90,22 +90,17 @@ rocksdb::Status Database::GetMetadata(GetOptions options, RedisTypes types, cons
9090
return GetMetadata(options, types, ns_key, &raw_value, metadata, &rest);
9191
}
9292

93-
rocksdb::Status Database::GetMetadata(GetOptions options, RedisTypes types, const Slice &ns_key, std::string *raw_value, Metadata *metadata,
94-
Slice *rest) {
93+
rocksdb::Status Database::GetMetadata(GetOptions options, RedisTypes types, const Slice &ns_key, std::string *raw_value,
94+
Metadata *metadata, Slice *rest) {
9595
auto s = GetRawMetadata(options, ns_key, raw_value);
9696
*rest = *raw_value;
9797
if (!s.ok()) return s;
9898
return ParseMetadata(types, rest, metadata);
9999
}
100100

101101
rocksdb::Status Database::GetRawMetadata(GetOptions options, const Slice &ns_key, std::string *bytes) {
102-
if (options.snapshot == nullptr) {
103-
LatestSnapShot ss(storage_);
104-
rocksdb::ReadOptions read_options;
105-
read_options.snapshot = ss.GetSnapShot();
106-
return storage_->Get(read_options, metadata_cf_handle_, ns_key, bytes);
107-
}
108102
rocksdb::ReadOptions opts;
103+
// If options.snapshot == nullptr, we can avoid allocating a snapshot here.
109104
opts.snapshot = options.snapshot;
110105
return storage_->Get(opts, metadata_cf_handle_, ns_key, bytes);
111106
}
@@ -252,7 +247,7 @@ rocksdb::Status Database::TTL(const Slice &user_key, int64_t *ttl) {
252247
rocksdb::Status Database::GetExpireTime(const Slice &user_key, uint64_t *timestamp) {
253248
std::string ns_key = AppendNamespacePrefix(user_key);
254249
Metadata metadata(kRedisNone, false);
255-
auto s = GetMetadata(RedisTypes::All(), ns_key, &metadata);
250+
auto s = GetMetadata(GetOptions{}, RedisTypes::All(), ns_key, &metadata);
256251
if (!s.ok()) return s;
257252
*timestamp = metadata.expire;
258253

@@ -522,7 +517,7 @@ rocksdb::Status Database::Dump(const Slice &user_key, std::vector<std::string> *
522517

523518
if (metadata.Type() == kRedisList) {
524519
ListMetadata list_metadata(false);
525-
s = GetMetadata({kRedisList}, ns_key, &list_metadata);
520+
s = GetMetadata(GetOptions{}, {kRedisList}, ns_key, &list_metadata);
526521
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;
527522
infos->emplace_back("head");
528523
infos->emplace_back(std::to_string(list_metadata.head));
@@ -640,12 +635,11 @@ rocksdb::Status SubKeyScanner::Scan(RedisType type, const Slice &user_key, const
640635
uint64_t cnt = 0;
641636
std::string ns_key = AppendNamespacePrefix(user_key);
642637
Metadata metadata(type, false);
643-
rocksdb::Status s = GetMetadata({type}, ns_key, &metadata);
638+
LatestSnapShot ss(storage_);
639+
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, {type}, ns_key, &metadata);
644640
if (!s.ok()) return s;
645641

646-
LatestSnapShot ss(storage_);
647642
rocksdb::ReadOptions read_options = storage_->DefaultScanOptions();
648-
read_options.snapshot = ss.GetSnapShot();
649643
auto iter = util::UniqueIterator(storage_, read_options);
650644
std::string match_prefix_key =
651645
InternalKey(ns_key, subkey_prefix, metadata.version, storage_->IsSlotIdEncoded()).Encode();

src/storage/redis_db.h

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,18 @@ class Database {
3333
public:
3434
static constexpr uint64_t RANDOM_KEY_SCAN_LIMIT = 60;
3535

36-
struct GetOptions {
37-
// If snapshot is not nullptr, read from the specified snapshot,
38-
// otherwise read from the "latest" snapshot.
39-
const rocksdb::Snapshot* snapshot = nullptr;
40-
};
36+
struct GetOptions {
37+
// If snapshot is not nullptr, read from the specified snapshot,
38+
// otherwise read from the "latest" snapshot.
39+
const rocksdb::Snapshot *snapshot = nullptr;
40+
};
4141

4242
explicit Database(engine::Storage *storage, std::string ns = "");
4343
[[nodiscard]] rocksdb::Status ParseMetadata(RedisTypes types, Slice *bytes, Metadata *metadata);
44-
[[nodiscard]] rocksdb::Status GetMetadata(GetOptions options, RedisTypes types, const Slice &ns_key, Metadata *metadata);
45-
[[nodiscard]] rocksdb::Status GetMetadata(GetOptions options, RedisTypes types, const Slice &ns_key, std::string *raw_value,
46-
Metadata *metadata, Slice *rest);
44+
[[nodiscard]] rocksdb::Status GetMetadata(GetOptions options, RedisTypes types, const Slice &ns_key,
45+
Metadata *metadata);
46+
[[nodiscard]] rocksdb::Status GetMetadata(GetOptions options, RedisTypes types, const Slice &ns_key,
47+
std::string *raw_value, Metadata *metadata, Slice *rest);
4748
[[nodiscard]] rocksdb::Status GetRawMetadata(GetOptions options, const Slice &ns_key, std::string *bytes);
4849
[[nodiscard]] rocksdb::Status Expire(const Slice &user_key, uint64_t timestamp);
4950
[[nodiscard]] rocksdb::Status Del(const Slice &user_key);

src/types/redis_bitmap.cc

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,9 @@ uint32_t SegmentSubKeyIndexForBit(uint32_t bit_offset) {
9393
return (bit_offset / kBitmapSegmentBits) * kBitmapSegmentBytes;
9494
}
9595

96-
rocksdb::Status Bitmap::GetMetadata(const Slice &ns_key, BitmapMetadata *metadata, std::string *raw_value) {
97-
auto s = GetRawMetadata(ns_key, raw_value);
96+
rocksdb::Status Bitmap::GetMetadata(Database::GetOptions get_options, const Slice &ns_key, BitmapMetadata *metadata,
97+
std::string *raw_value) {
98+
auto s = GetRawMetadata(get_options, ns_key, raw_value);
9899
if (!s.ok()) return s;
99100

100101
Slice slice = *raw_value;
@@ -107,15 +108,15 @@ rocksdb::Status Bitmap::GetBit(const Slice &user_key, uint32_t bit_offset, bool
107108
std::string ns_key = AppendNamespacePrefix(user_key);
108109

109110
BitmapMetadata metadata(false);
110-
rocksdb::Status s = GetMetadata(ns_key, &metadata, &raw_value);
111+
LatestSnapShot ss(storage_);
112+
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata, &raw_value);
111113
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;
112114

113115
if (metadata.Type() == kRedisString) {
114116
redis::BitmapString bitmap_string_db(storage_, namespace_);
115117
return bitmap_string_db.GetBit(raw_value, bit_offset, bit);
116118
}
117119

118-
LatestSnapShot ss(storage_);
119120
rocksdb::ReadOptions read_options;
120121
read_options.snapshot = ss.GetSnapShot();
121122
rocksdb::PinnableSlice value;
@@ -142,7 +143,8 @@ rocksdb::Status Bitmap::GetString(const Slice &user_key, const uint32_t max_btos
142143
std::string ns_key = AppendNamespacePrefix(user_key);
143144

144145
BitmapMetadata metadata(false);
145-
rocksdb::Status s = GetMetadata(ns_key, &metadata, &raw_value);
146+
LatestSnapShot ss(storage_);
147+
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata, &raw_value);
146148
if (!s.ok()) return s;
147149
if (metadata.size > max_btos_size) {
148150
return rocksdb::Status::Aborted(kErrBitmapStringOutOfRange);
@@ -152,7 +154,6 @@ rocksdb::Status Bitmap::GetString(const Slice &user_key, const uint32_t max_btos
152154
std::string prefix_key = InternalKey(ns_key, "", metadata.version, storage_->IsSlotIdEncoded()).Encode();
153155

154156
rocksdb::ReadOptions read_options = storage_->DefaultScanOptions();
155-
LatestSnapShot ss(storage_);
156157
read_options.snapshot = ss.GetSnapShot();
157158

158159
auto iter = util::UniqueIterator(storage_, read_options);
@@ -184,7 +185,7 @@ rocksdb::Status Bitmap::SetBit(const Slice &user_key, uint32_t bit_offset, bool
184185

185186
LockGuard guard(storage_->GetLockManager(), ns_key);
186187
BitmapMetadata metadata;
187-
rocksdb::Status s = GetMetadata(ns_key, &metadata, &raw_value);
188+
rocksdb::Status s = GetMetadata(GetOptions{}, ns_key, &metadata, &raw_value);
188189
if (!s.ok() && !s.IsNotFound()) return s;
189190

190191
if (metadata.Type() == kRedisString) {
@@ -228,7 +229,8 @@ rocksdb::Status Bitmap::BitCount(const Slice &user_key, int64_t start, int64_t s
228229
std::string ns_key = AppendNamespacePrefix(user_key);
229230

230231
BitmapMetadata metadata(false);
231-
rocksdb::Status s = GetMetadata(ns_key, &metadata, &raw_value);
232+
std::optional<LatestSnapShot> ss(storage_);
233+
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss->GetSnapShot()}, ns_key, &metadata, &raw_value);
232234
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;
233235

234236
/* Convert negative indexes */
@@ -237,6 +239,9 @@ rocksdb::Status Bitmap::BitCount(const Slice &user_key, int64_t start, int64_t s
237239
}
238240

239241
if (metadata.Type() == kRedisString) {
242+
// Release snapshot ahead for performance, this requires
243+
// `bitmap_string_db` doesn't get anything.
244+
ss = std::nullopt;
240245
redis::BitmapString bitmap_string_db(storage_, namespace_);
241246
return bitmap_string_db.BitCount(raw_value, start, stop, is_bit_index, cnt);
242247
}
@@ -257,9 +262,8 @@ rocksdb::Status Bitmap::BitCount(const Slice &user_key, int64_t start, int64_t s
257262
auto u_start = static_cast<uint32_t>(start_byte);
258263
auto u_stop = static_cast<uint32_t>(stop_byte);
259264

260-
LatestSnapShot ss(storage_);
261265
rocksdb::ReadOptions read_options;
262-
read_options.snapshot = ss.GetSnapShot();
266+
read_options.snapshot = ss->GetSnapShot();
263267
uint32_t start_index = u_start / kBitmapSegmentBytes;
264268
uint32_t stop_index = u_stop / kBitmapSegmentBytes;
265269
// Don't use multi get to prevent large range query, and take too much memory
@@ -308,14 +312,16 @@ rocksdb::Status Bitmap::BitPos(const Slice &user_key, bool bit, int64_t start, i
308312
std::string ns_key = AppendNamespacePrefix(user_key);
309313

310314
BitmapMetadata metadata(false);
311-
rocksdb::Status s = GetMetadata(ns_key, &metadata, &raw_value);
315+
std::optional<LatestSnapShot> ss(storage_);
316+
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss->GetSnapShot()}, ns_key, &metadata, &raw_value);
312317
if (!s.ok() && !s.IsNotFound()) return s;
313318
if (s.IsNotFound()) {
314319
*pos = bit ? -1 : 0;
315320
return rocksdb::Status::OK();
316321
}
317322

318323
if (metadata.Type() == kRedisString) {
324+
ss = std::nullopt;
319325
redis::BitmapString bitmap_string_db(storage_, namespace_);
320326
return bitmap_string_db.BitPos(raw_value, bit, start, stop, stop_given, pos);
321327
}
@@ -335,9 +341,8 @@ rocksdb::Status Bitmap::BitPos(const Slice &user_key, bool bit, int64_t start, i
335341
return -1;
336342
};
337343

338-
LatestSnapShot ss(storage_);
339344
rocksdb::ReadOptions read_options;
340-
read_options.snapshot = ss.GetSnapShot();
345+
read_options.snapshot = ss->GetSnapShot();
341346
uint32_t start_index = u_start / kBitmapSegmentBytes;
342347
uint32_t stop_index = u_stop / kBitmapSegmentBytes;
343348
// Don't use multi get to prevent large range query, and take too much memory
@@ -417,7 +422,7 @@ rocksdb::Status Bitmap::BitOp(BitOpFlags op_flag, const std::string &op_name, co
417422
for (const auto &op_key : op_keys) {
418423
BitmapMetadata metadata(false);
419424
std::string ns_op_key = AppendNamespacePrefix(op_key);
420-
auto s = GetMetadata(ns_op_key, &metadata, &raw_value);
425+
auto s = GetMetadata(GetOptions{}, ns_op_key, &metadata, &raw_value);
421426
if (!s.ok()) {
422427
if (s.IsNotFound()) {
423428
continue;
@@ -769,7 +774,8 @@ rocksdb::Status Bitmap::bitfield(const Slice &user_key, const std::vector<Bitfie
769774

770775
BitmapMetadata metadata;
771776
std::string raw_value;
772-
auto s = GetMetadata(ns_key, &metadata, &raw_value);
777+
// TODO(mwish): maintain snapshot for read-only bitfield.
778+
auto s = GetMetadata(GetOptions{}, ns_key, &metadata, &raw_value);
773779
if (!s.ok() && !s.IsNotFound()) {
774780
return s;
775781
}

src/types/redis_bitmap.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ class Bitmap : public Database {
7272
std::vector<std::optional<BitfieldValue>> *rets);
7373
static bool bitfieldWriteAheadLog(const ObserverOrUniquePtr<rocksdb::WriteBatchBase> &batch,
7474
const std::vector<BitfieldOperation> &ops);
75-
rocksdb::Status GetMetadata(const Slice &ns_key, BitmapMetadata *metadata, std::string *raw_value);
75+
rocksdb::Status GetMetadata(Database::GetOptions get_options, const Slice &ns_key, BitmapMetadata *metadata,
76+
std::string *raw_value);
7677

7778
template <bool ReadOnly>
7879
static rocksdb::Status runBitfieldOperationsWithCache(SegmentCacheStore &cache,

src/types/redis_bloom_chain.cc

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@
2424

2525
namespace redis {
2626

27-
rocksdb::Status BloomChain::getBloomChainMetadata(const Slice &ns_key, BloomChainMetadata *metadata) {
28-
return Database::GetMetadata({kRedisBloomFilter}, ns_key, metadata);
27+
rocksdb::Status BloomChain::getBloomChainMetadata(Database::GetOptions get_options, const Slice &ns_key,
28+
BloomChainMetadata *metadata) {
29+
return Database::GetMetadata(get_options, {kRedisBloomFilter}, ns_key, metadata);
2930
}
3031

3132
std::string BloomChain::getBFKey(const Slice &ns_key, const BloomChainMetadata &metadata, uint16_t filters_index) {
@@ -124,7 +125,7 @@ rocksdb::Status BloomChain::Reserve(const Slice &user_key, uint32_t capacity, do
124125

125126
LockGuard guard(storage_->GetLockManager(), ns_key);
126127
BloomChainMetadata bloom_chain_metadata;
127-
rocksdb::Status s = getBloomChainMetadata(ns_key, &bloom_chain_metadata);
128+
rocksdb::Status s = getBloomChainMetadata(GetOptions{}, ns_key, &bloom_chain_metadata);
128129
if (!s.ok() && !s.IsNotFound()) return s;
129130
if (!s.IsNotFound()) {
130131
return rocksdb::Status::InvalidArgument("the key already exists");
@@ -153,7 +154,7 @@ rocksdb::Status BloomChain::InsertCommon(const Slice &user_key, const std::vecto
153154
LockGuard guard(storage_->GetLockManager(), ns_key);
154155

155156
BloomChainMetadata metadata;
156-
rocksdb::Status s = getBloomChainMetadata(ns_key, &metadata);
157+
rocksdb::Status s = getBloomChainMetadata(GetOptions{}, ns_key, &metadata);
157158

158159
if (s.IsNotFound() && insert_options.auto_create) {
159160
s = createBloomChain(ns_key, insert_options.error_rate, insert_options.capacity, insert_options.expansion,
@@ -235,7 +236,7 @@ rocksdb::Status BloomChain::MExists(const Slice &user_key, const std::vector<std
235236
std::string ns_key = AppendNamespacePrefix(user_key);
236237

237238
BloomChainMetadata metadata;
238-
rocksdb::Status s = getBloomChainMetadata(ns_key, &metadata);
239+
rocksdb::Status s = getBloomChainMetadata(Database::GetOptions{}, ns_key, &metadata);
239240
if (s.IsNotFound()) {
240241
std::fill(exists->begin(), exists->end(), false);
241242
return rocksdb::Status::OK();
@@ -269,7 +270,7 @@ rocksdb::Status BloomChain::Info(const Slice &user_key, BloomFilterInfo *info) {
269270
std::string ns_key = AppendNamespacePrefix(user_key);
270271

271272
BloomChainMetadata metadata;
272-
rocksdb::Status s = getBloomChainMetadata(ns_key, &metadata);
273+
rocksdb::Status s = getBloomChainMetadata(Database::GetOptions{}, ns_key, &metadata);
273274
if (!s.ok()) return s;
274275

275276
info->capacity = metadata.GetCapacity();

src/types/redis_bloom_chain.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ class BloomChain : public Database {
7474
rocksdb::Status Info(const Slice &user_key, BloomFilterInfo *info);
7575

7676
private:
77-
rocksdb::Status getBloomChainMetadata(const Slice &ns_key, BloomChainMetadata *metadata);
77+
rocksdb::Status getBloomChainMetadata(Database::GetOptions get_options, const Slice &ns_key,
78+
BloomChainMetadata *metadata);
7879
std::string getBFKey(const Slice &ns_key, const BloomChainMetadata &metadata, uint16_t filters_index);
7980
void getBFKeyList(const Slice &ns_key, const BloomChainMetadata &metadata, std::vector<std::string> *bf_key_list);
8081
rocksdb::Status getBFDataList(const std::vector<std::string> &bf_key_list,

src/types/redis_geo.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ rocksdb::Status Geo::SearchStore(const Slice &user_key, GeoShape geo_shape, Orig
128128

129129
std::string ns_key = AppendNamespacePrefix(user_key);
130130
ZSetMetadata metadata(false);
131-
rocksdb::Status s = ZSet::GetMetadata(ns_key, &metadata);
131+
rocksdb::Status s = ZSet::GetMetadata(GetOptions{}, ns_key, &metadata);
132132
// store key is not empty, try to remove it before returning.
133133
if (!s.ok() && s.IsNotFound() && !store_key.empty()) {
134134
auto del_s = ZSet::Del(store_key);

0 commit comments

Comments
 (0)