簡體   English   中英

每當我在rocksdb中為同一個鍵輸入值時,值都會更新並且計數也會增加

[英]Whenever I put value in rocksdb for the same key, the value get updated and count also gets increased

每當我在rocksdb中為同一個鍵輸入值時。 值得到更新。 但是通過以下方法 db.getLongProperty(columnFamily, "rocksdb.estimate-num-keys") 的計數會增加。 為什么我會出現這種奇怪的行為?

這是rocksdb 中的預期行為。 請注意,該屬性是estimate-num-keys ,這意味着它只會為您提供數據庫中存在的鍵數的估計(不精確)。 您可能必須對列族運行full compaction才能獲得准確的鍵數。

引自 WIKI,

問:為什么 GetIntProperty 只能返回 RocksDB 數據庫中估計的鍵數?

答:在任何 LSM 數據庫(如 RocksDB)中獲取准確數量的鍵是一個具有挑戰性的問題,因為它們具有重復的鍵和刪除條目(即墓碑),需要完全壓縮才能獲得准確數量的鍵。 此外,如果 RocksDB 數據庫包含合並算子,也會使估計的 key 數量不太准確。

您還可以檢查 Rocksdb 選項 - inplace_update_support如果它存在於 memtable 本身中,它將更新密鑰而不是再次寫入它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM