From 5fe197db8f9dd61da2e38315b8ed8e51da6b6bfe Mon Sep 17 00:00:00 2001 From: dicethedev Date: Sat, 25 Apr 2026 11:14:04 +0100 Subject: [PATCH 1/3] perf(l1): enable lz4 compression for trie and flat key-value tables --- crates/storage/backend/rocksdb.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/crates/storage/backend/rocksdb.rs b/crates/storage/backend/rocksdb.rs index 1672fffb07d..cc14414f16e 100644 --- a/crates/storage/backend/rocksdb.rs +++ b/crates/storage/backend/rocksdb.rs @@ -71,6 +71,10 @@ impl RocksDBBackend { RECEIPTS, TRANSACTION_LOCATIONS, FULLSYNC_HEADERS, + ACCOUNT_TRIE_NODES, + STORAGE_TRIE_NODES, + ACCOUNT_FLATKEYVALUE, + STORAGE_FLATKEYVALUE, ]; // opts.enable_statistics(); @@ -121,11 +125,13 @@ impl RocksDBBackend { let mut block_opts = BlockBasedOptions::default(); block_opts.set_block_size(16 * 1024); // 16KB block_opts.set_bloom_filter(10.0, false); + block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); + block_opts.set_data_block_hash_ratio(0.75); block_opts.set_block_cache(&block_cache); cf_opts.set_block_based_table_factory(&block_opts); } ACCOUNT_TRIE_NODES | STORAGE_TRIE_NODES => { - cf_opts.set_write_buffer_size(512 * 1024 * 1024); // 512MB + cf_opts.set_write_buffer_size(512 * 10s24 * 1024); // 512MB cf_opts.set_max_write_buffer_number(6); cf_opts.set_min_write_buffer_number_to_merge(2); cf_opts.set_target_file_size_base(256 * 1024 * 1024); // 256MB @@ -134,6 +140,8 @@ impl RocksDBBackend { let mut block_opts = BlockBasedOptions::default(); block_opts.set_block_size(16 * 1024); // 16KB block_opts.set_bloom_filter(10.0, false); // 10 bits per key + block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); + block_opts.set_data_block_hash_ratio(0.75); block_opts.set_block_cache(&block_cache); cf_opts.set_block_based_table_factory(&block_opts); } @@ -147,6 +155,8 @@ impl RocksDBBackend { let mut block_opts = BlockBasedOptions::default(); block_opts.set_block_size(16 * 1024); // 16KB block_opts.set_bloom_filter(10.0, false); // 10 bits per key + block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); + block_opts.set_data_block_hash_ratio(0.75); block_opts.set_block_cache(&block_cache); cf_opts.set_block_based_table_factory(&block_opts); } @@ -162,6 +172,8 @@ impl RocksDBBackend { let mut block_opts = BlockBasedOptions::default(); block_opts.set_block_size(32 * 1024); // 32KB + block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); + block_opts.set_data_block_hash_ratio(0.75); block_opts.set_block_cache(&block_cache); cf_opts.set_block_based_table_factory(&block_opts); } @@ -172,6 +184,8 @@ impl RocksDBBackend { let mut block_opts = BlockBasedOptions::default(); block_opts.set_block_size(32 * 1024); // 32KB + block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); + block_opts.set_data_block_hash_ratio(0.75); block_opts.set_block_cache(&block_cache); cf_opts.set_block_based_table_factory(&block_opts); } @@ -183,6 +197,8 @@ impl RocksDBBackend { let mut block_opts = BlockBasedOptions::default(); block_opts.set_block_size(16 * 1024); + block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); + block_opts.set_data_block_hash_ratio(0.75); block_opts.set_block_cache(&block_cache); cf_opts.set_block_based_table_factory(&block_opts); } From b5c29f8f94de3d1a707bed848fa1ed4006413c94 Mon Sep 17 00:00:00 2001 From: dicethedev Date: Sat, 25 Apr 2026 11:19:39 +0100 Subject: [PATCH 2/3] =?UTF-8?q?fix(l1):=20correct=20typo=2010s24=20?= =?UTF-8?q?=E2=86=92=201024?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/storage/backend/rocksdb.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/storage/backend/rocksdb.rs b/crates/storage/backend/rocksdb.rs index cc14414f16e..8784ed8f44f 100644 --- a/crates/storage/backend/rocksdb.rs +++ b/crates/storage/backend/rocksdb.rs @@ -131,7 +131,7 @@ impl RocksDBBackend { cf_opts.set_block_based_table_factory(&block_opts); } ACCOUNT_TRIE_NODES | STORAGE_TRIE_NODES => { - cf_opts.set_write_buffer_size(512 * 10s24 * 1024); // 512MB + cf_opts.set_write_buffer_size(512 * 1024 * 1024); // 512MB cf_opts.set_max_write_buffer_number(6); cf_opts.set_min_write_buffer_number_to_merge(2); cf_opts.set_target_file_size_base(256 * 1024 * 1024); // 256MB From 1c728888be8612cf6529f1fdcb95c5352a80a58d Mon Sep 17 00:00:00 2001 From: dicethedev Date: Sat, 25 Apr 2026 11:19:39 +0100 Subject: [PATCH 3/3] =?UTF-8?q?fix(l1):=20correct=20typo=2010s24=20?= =?UTF-8?q?=E2=86=92=201024?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/storage/backend/rocksdb.rs | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/crates/storage/backend/rocksdb.rs b/crates/storage/backend/rocksdb.rs index 8784ed8f44f..ebef4527dab 100644 --- a/crates/storage/backend/rocksdb.rs +++ b/crates/storage/backend/rocksdb.rs @@ -125,8 +125,9 @@ impl RocksDBBackend { let mut block_opts = BlockBasedOptions::default(); block_opts.set_block_size(16 * 1024); // 16KB block_opts.set_bloom_filter(10.0, false); - block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); - block_opts.set_data_block_hash_ratio(0.75); + block_opts + .set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); + block_opts.set_data_block_hash_ratio(0.75); block_opts.set_block_cache(&block_cache); cf_opts.set_block_based_table_factory(&block_opts); } @@ -140,8 +141,9 @@ impl RocksDBBackend { let mut block_opts = BlockBasedOptions::default(); block_opts.set_block_size(16 * 1024); // 16KB block_opts.set_bloom_filter(10.0, false); // 10 bits per key - block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); - block_opts.set_data_block_hash_ratio(0.75); + block_opts + .set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); + block_opts.set_data_block_hash_ratio(0.75); block_opts.set_block_cache(&block_cache); cf_opts.set_block_based_table_factory(&block_opts); } @@ -155,8 +157,9 @@ impl RocksDBBackend { let mut block_opts = BlockBasedOptions::default(); block_opts.set_block_size(16 * 1024); // 16KB block_opts.set_bloom_filter(10.0, false); // 10 bits per key - block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); - block_opts.set_data_block_hash_ratio(0.75); + block_opts + .set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); + block_opts.set_data_block_hash_ratio(0.75); block_opts.set_block_cache(&block_cache); cf_opts.set_block_based_table_factory(&block_opts); } @@ -172,7 +175,8 @@ impl RocksDBBackend { let mut block_opts = BlockBasedOptions::default(); block_opts.set_block_size(32 * 1024); // 32KB - block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); + block_opts + .set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); block_opts.set_data_block_hash_ratio(0.75); block_opts.set_block_cache(&block_cache); cf_opts.set_block_based_table_factory(&block_opts); @@ -184,8 +188,9 @@ impl RocksDBBackend { let mut block_opts = BlockBasedOptions::default(); block_opts.set_block_size(32 * 1024); // 32KB - block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); - block_opts.set_data_block_hash_ratio(0.75); + block_opts + .set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); + block_opts.set_data_block_hash_ratio(0.75); block_opts.set_block_cache(&block_cache); cf_opts.set_block_based_table_factory(&block_opts); } @@ -197,8 +202,9 @@ impl RocksDBBackend { let mut block_opts = BlockBasedOptions::default(); block_opts.set_block_size(16 * 1024); - block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); - block_opts.set_data_block_hash_ratio(0.75); + block_opts + .set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); + block_opts.set_data_block_hash_ratio(0.75); block_opts.set_block_cache(&block_cache); cf_opts.set_block_based_table_factory(&block_opts); }