Skip to content

Commit

Permalink
Revert quorum store] reduce backpressure significantly for more TPS (#…
Browse files Browse the repository at this point in the history
…13558) and Swap parameters (#13666)

* Revert "[quorum store] reduce backpressure significantly for more TPS (#13558)"

This reverts commit 1a47323.

* swap the misconfig parameters
  • Loading branch information
areshand authored Jun 12, 2024
1 parent 2b01095 commit 1e4b615
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 16 deletions.
13 changes: 5 additions & 8 deletions config/src/config/quorum_store_config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,16 @@ pub struct QuorumStoreBackPressureConfig {
impl Default for QuorumStoreBackPressureConfig {
fn default() -> QuorumStoreBackPressureConfig {
QuorumStoreBackPressureConfig {
// QS will be backpressured if the remaining total txns is more than this number.
// The remaining total txns is the sum of batch sizes of all unexpired batches for which the
// validator has recieved Proof of Store but has not yet committed.
// The batches generated by different validators could have common transactions.
// Roughly, target TPS * commit latency seconds * duplication factor of a transaction in batches.
backlog_txn_limit_count: 36_000,
// QS will be backpressured if the remaining total txns is more than this number
// Roughly, target TPS * commit latency seconds
backlog_txn_limit_count: 12_000,
// QS will create batches at the max rate until this number is reached
backlog_per_validator_batch_limit_count: 20,
backlog_per_validator_batch_limit_count: 4,
decrease_duration_ms: 1000,
increase_duration_ms: 1000,
decrease_fraction: 0.5,
dynamic_min_txn_per_s: 160,
dynamic_max_txn_per_s: 12000,
dynamic_max_txn_per_s: 4000,
}
}
}
Expand Down
16 changes: 8 additions & 8 deletions testsuite/forge-cli/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1112,10 +1112,10 @@ fn realistic_env_workload_sweep_test() -> ForgeConfig {
]),
// Investigate/improve to make latency more predictable on different workloads
criteria: [
(7700, 100, 0.3, 0.5, 0.5, 0.5),
(7000, 100, 0.3, 0.5, 0.5, 0.5),
(2000, 300, 0.3, 1.0, 0.6, 1.0),
(3200, 500, 0.3, 1.5, 0.7, 0.7),
(7700, 100, 0.3, 0.3, 0.5, 0.5),
(7000, 100, 0.3, 0.3, 0.5, 0.5),
(2000, 300, 0.3, 0.8, 0.6, 1.0),
(3200, 500, 0.3, 0.4, 0.7, 0.7),
// (150, 0.5, 1.0, 1.5, 0.65),
]
.into_iter()
Expand Down Expand Up @@ -1950,9 +1950,9 @@ fn realistic_env_max_load_test(
.add_system_metrics_threshold(SystemMetricsThreshold::new(
// Check that we don't use more than 18 CPU cores for 10% of the time.
MetricsThreshold::new(18.0, 10),
// Memory starts around 3.5GB, and grows around 1.4GB/hr in this test.
// Memory starts around 3GB, and grows around 1.2GB/hr in this test.
// Check that we don't use more than final expected memory for more than 10% of the time.
MetricsThreshold::new_gb(3.5 + 1.4 * (duration_secs as f64 / 3600.0), 10),
MetricsThreshold::new_gb(3.3 + 1.4 * (duration_secs as f64 / 3600.0), 10),
))
.add_no_restarts()
.add_wait_for_catchup_s(
Expand All @@ -1970,8 +1970,8 @@ fn realistic_env_max_load_test(
LatencyBreakdownThreshold::new_with_breach_pct(
vec![
(LatencyBreakdownSlice::QsBatchToPos, 0.35),
// quorum store backpressure is relaxed, so queueing happens here
(LatencyBreakdownSlice::QsPosToProposal, 2.5),
// only reaches close to threshold during epoch change
(LatencyBreakdownSlice::QsPosToProposal, 0.6),
// can be adjusted down if less backpressure
(LatencyBreakdownSlice::ConsensusProposalToOrdered, 0.85),
// can be adjusted down if less backpressure
Expand Down

0 comments on commit 1e4b615

Please sign in to comment.