簡體   English   中英

rocksdb 刪除鍵是如何工作的

[英]How rocksdb delete key works

我正在嘗試了解 rocksdb 的幕后工作原理。 我知道每個 SST 文件都有一個布隆過濾器,以指示某個密鑰是否屬於該文件。 但是當一個密鑰從文件中刪除時會發生什么? Bloom 過濾器不支持刪除,因此創建了一個新的 Bloom 過濾器?

如果一個鍵被刪除,RocksDB 會為它創建一個刪除標記(墓碑),稍后將其保存在 SST 文件中。 SST 文件中的墓碑將添加到文件的布隆過濾器中。

bloom filter,指示key是否屬於文件。

布隆過濾器是為了加快檢查文件中是否包含密鑰的速度。 這就是為什么 api 被稱為keyMayExist的原因,因為它是概率性的

Bloom 過濾器不支持刪除,因此創建了一個新的 Bloom 過濾器?

否 - 與布隆過濾器無關

從文件中刪除密鑰時會發生什么

首先它從 memtable 中刪除,當數據刷新到磁盤時,存儲一個標記,表明密鑰 xyz 已被刪除

我正在嘗試了解 rocksdb 的幕后工作原理。

觀看視頻https://youtu.be/7QHI7JQEc5c?t=1281

暫無
暫無

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

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