Skip to content

ethdb/pebble: add configuration changes - #33315

Merged
fjl merged 1 commit into
ethereum:masterfrom
rjl493456442:pebble-configs
Dec 2, 2025
Merged

ethdb/pebble: add configuration changes#33315
fjl merged 1 commit into
ethereum:masterfrom
rjl493456442:pebble-configs

Conversation

@rjl493456442

Copy link
Copy Markdown
Member

This introduces two main changes to Pebble's configuration:

(a) Remove the Bloom filter at Level 6

The Bloom filter is never used at the bottom-most level, so keeping it serves
no purpose. Removing it saves storage without affecting read performance.

(b) Re-enable read-sampling compaction

Read-sampling compaction was previously disabled in the hash-based scheme
because all data was identified by hashes and basically no data overwrite. Read
sampling compaction makes no sense.

After switching to the path-based scheme, data overwrites are much more common,
making read-sampling compaction beneficial and reasonable to re-enable.

It introduces two main changes:

- remove the bloom filter at level6
- re-enable the read sampling compaction
@fjl

fjl commented Dec 2, 2025

Copy link
Copy Markdown
Contributor

Gary tried this on our benchmark system and the bloom filter change saves ~4GB. So it's worth adding. The other change seems to have little effect, but it's good to remove the setting of this option if it's not significant anyway.

@fjl
fjl merged commit 212967d into ethereum:master Dec 2, 2025
7 of 8 checks passed
@fjl fjl added this to the 1.16.8 milestone Dec 2, 2025
weiihann pushed a commit to weiihann/go-ethereum that referenced this pull request Jan 14, 2026
This introduces two main changes to Pebble's configuration:

(a) Remove the Bloom filter at Level 6

The Bloom filter is never used at the bottom-most level, so keeping it
serves no purpose. Removing it saves storage without affecting read
performance.

(b) Re-enable read-sampling compaction

Read-sampling compaction was previously disabled in the hash-based
scheme because all data was identified by hashes and basically no data
overwrite. Read sampling compaction makes no sense.

After switching to the path-based scheme, data overwrites are much more
common, making read-sampling compaction beneficial and reasonable to re-enable.
gballet pushed a commit to BZO95/go-ethereum that referenced this pull request May 21, 2026
This introduces two main changes to Pebble's configuration:

(a) Remove the Bloom filter at Level 6

The Bloom filter is never used at the bottom-most level, so keeping it
serves no purpose. Removing it saves storage without affecting read
performance.

(b) Re-enable read-sampling compaction

Read-sampling compaction was previously disabled in the hash-based
scheme because all data was identified by hashes and basically no data
overwrite. Read sampling compaction makes no sense.

After switching to the path-based scheme, data overwrites are much more
common, making read-sampling compaction beneficial and reasonable to re-enable.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants