cockroachdb / pebble

RocksDB/LevelDB inspired key-value database in Go
BSD 3-Clause "New" or "Revised" License
4.8k stars 447 forks source link

sstable: clean up; drop support for range deletion v1 blocks #3710

Closed jbowens closed 3 months ago

jbowens commented 3 months ago

sstable/rowblk: replace RawWriter with methods on rowblk.Writer

sstable: add metaIndexWriter

Add a helper metaIndexWriter type that handles sorting the meta index keys so Writer.Close doesn't need to maintain a delicate ordering.

sstable: drop support for v1 range deletion blocks

The v1 range deletion blocks predate Pebble. Our format major versions that required compaction of all pre-Pebble sstables ensure that no v1 range deletion blocks should exist in the wild without an accompanying v2 range deletion block. This required regeneration of the sstable fixtures.

sstable: add layoutWriter

Refactor management of block handles, file size and the meta index into a layoutWriter type responsible for writing blocks to durable storage. This will allow the columnar block format to share logic.

cockroach-teamcity commented 3 months ago

This change is Reviewable

RaduBerinde commented 3 months ago

Is this true even of older backups? (CC @dt) I remember trying to deprecate some table formats before and I ended up reverting it because of backup.