diff --git a/.config/zepter.yaml b/.config/zepter.yaml index f38688f8224..7aa1bd725ef 100644 --- a/.config/zepter.yaml +++ b/.config/zepter.yaml @@ -12,7 +12,7 @@ workflows: # Check that `A` activates the features of `B`. "propagate-feature", # These are the features to check: - "--features=std,op,dev,asm-keccak,jemalloc,jemalloc-prof,tracy-allocator,tracy,serde-bincode-compat,serde,test-utils,arbitrary,bench,alloy-compat,min-error-logs,min-warn-logs,min-info-logs,min-debug-logs,min-trace-logs,otlp,otlp-logs,js-tracer,portable,keccak-cache-global,trie-debug", + "--features=std,op,dev,asm-keccak,jemalloc,jemalloc-prof,tracy-allocator,tracy,serde-bincode-compat,serde,test-utils,arbitrary,bench,alloy-compat,min-error-logs,min-warn-logs,min-info-logs,min-debug-logs,min-trace-logs,otlp,otlp-logs,js-tracer,portable,keccak-cache-global,trie-debug,secp256k1", # Do not try to add a new section to `[features]` of `A` only because `B` exposes that feature. There are edge-cases where this is still needed, but we can add them manually. "--left-side-feature-missing=ignore", # Ignore the case that `A` it outside of the workspace. Otherwise it will report errors in external dependencies that we have no influence on. diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 1568a186acb..dd3bbafb412 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -45,7 +45,6 @@ crates/tracing-otlp/ @mattsse @Rjected crates/transaction-pool/ @mattsse @yongkangc crates/trie/ @Rjected @shekhirin @mediocregopher @yongkangc bin/reth/ @mattsse @shekhirin @Rjected -bin/reth-bench/ @mattsse @Rjected @shekhirin @yongkangc bin/reth-bench-compare/ @mediocregopher @shekhirin @yongkangc etc/ @Rjected @shekhirin .github/ @gakonst @DaniPopes diff --git a/.github/config/bench-metrics-targets.json b/.github/config/bench-metrics-targets.json new file mode 100644 index 00000000000..3e2140c6494 --- /dev/null +++ b/.github/config/bench-metrics-targets.json @@ -0,0 +1,97 @@ +{ + "counters": [ + { + "query": "sum(reth_database_transaction_opened_total{mode=\"read-write\"})", + "target": "decrease", + "floor_pct": 10.0, + "min_value_pct_total_latency": 0.0 + }, + { + "query": "sum(reth_database_transaction_opened_total{mode=\"read-only\"})", + "target": "decrease", + "floor_pct": 7.5, + "min_value_pct_total_latency": 0.0 + } + ], + "histograms": [ + { + "query": "reth_sync_block_validation_state_root_histogram", + "target": "decrease", + "floor_pct": 5.0, + "min_value_pct_total_latency": 5.0 + }, + { + "query": "reth_trie_proof_task_account_worker_idle_time_seconds", + "target": "increase", + "floor_pct": 7.5, + "min_value_pct_total_latency": 0.0 + }, + { + "query": "reth_trie_proof_task_storage_worker_idle_time_seconds", + "target": "increase", + "floor_pct": 5.0, + "min_value_pct_total_latency": 0.0 + }, + { + "query": "reth_tree_root_sparse_trie_idle_time_seconds", + "target": "increase", + "floor_pct": 7.5, + "min_value_pct_total_latency": 15.0 + }, + { + "query": "reth_tree_root_hashing_task_idle_time_seconds", + "target": "increase", + "floor_pct": 5.0, + "min_value_pct_total_latency": 0.0 + }, + { + "query": "reth_database_transaction_close_duration_seconds", + "target": "decrease", + "floor_pct": 5.0, + "min_value_pct_total_latency": 14.3 + }, + { + "query": "reth_pruner_duration_seconds", + "target": "decrease", + "floor_pct": 7.5, + "min_value_pct_total_latency": 0.0 + }, + { + "query": "reth_storage_providers_database_save_blocks_commit_mdbx", + "target": "decrease", + "floor_pct": 5.0, + "min_value_pct_total_latency": 13.6 + }, + { + "query": "reth_storage_providers_database_save_blocks_commit_rocksdb", + "target": "decrease", + "floor_pct": 2.5, + "min_value_pct_total_latency": 0.8 + }, + { + "query": "reth_storage_providers_database_save_blocks_mdbx", + "target": "decrease", + "floor_pct": 5.0, + "min_value_pct_total_latency": 0.0, + "unit": "seconds" + }, + { + "query": "reth_storage_providers_database_save_blocks_rocksdb", + "target": "decrease", + "floor_pct": 2.5, + "min_value_pct_total_latency": 14.2 + }, + { + "query": "reth_storage_providers_database_save_blocks_sf", + "target": "decrease", + "floor_pct": 2.5, + "min_value_pct_total_latency": 5.4 + }, + { + "query": "reth_sync_block_validation_deferred_trie_compute_duration", + "target": "decrease", + "floor_pct": 2.5, + "min_value_pct_total_latency": 1.4 + } + ] +} diff --git a/.github/scripts/bench-benchmarkoor-run.sh b/.github/scripts/bench-benchmarkoor-run.sh new file mode 100755 index 00000000000..723806ab079 --- /dev/null +++ b/.github/scripts/bench-benchmarkoor-run.sh @@ -0,0 +1,872 @@ +#!/usr/bin/env bash +# +# Runs benchmarkoor-replay against a Reth datadir mounted by schelk. +# +# Usage: +# bench-benchmarkoor-run.sh prepare +# bench-benchmarkoor-run.sh run