cockroachdb / cockroachdb/pebble

db: SeekPrefixGE lazy positioning, or GetPrefix

オープン
#2,002 コメント 7 件 リアクション 0 件 担当者 0 名 GitHub で見る
A-storage C-enhancement T-storage
主要言語
Go
スター
6k
フォーク
584
平均マージ
16時間 35分
マージ済み PR(30日)
5

説明

I have not thought through the design space here in detail, but it seems possible to use MVCC metadata about sstables (eg, the computed block properties) to avoid reading files that contain older versions of a key during a SeekPrefixGE. The goal would be to reduce block reads during MVCCGets, making MVCCGets performance profile more similar to a pebble Get.

A design, just to serve as an illustrative example:
* the sstable iterator SeekPrefixGE returns a synthetic `@`key if the bloom filter indicates the file may contain the key
* the merging iterator is updated to skip past these synthetic keys (much like it does today for range tombstones)
* nexting a sstable iterator last positioned by SeekPrefixGE actually performs the seek

if we elevated MVCC timestamps into the `*fileMetadata`, it seems like we could even avoid some of the bloom filter reads and table loads.

Somewhat related to #2182.

Jira issue: PEBBLE-142

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。