Simplify apply load limits mode.#5249
Open
dmkozh wants to merge 2 commits intostellar:masterfrom
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR simplifies the apply-load “ledger-limits” benchmarking configuration by removing unused modes and per-transaction distribution knobs, and instead deriving a single apply-load transaction profile directly from the configured ledger/tx limits (plus tx count / TPL).
Changes:
- Remove
limits-for-model-txapply-load mode and thesoroban_invoke_apply_loadloadgen mode, along with their tests/docs/config parsing. - Introduce
ApplyLoadTxProfileand derive it automatically inApplyLoadforLIMIT_BASEDmode; thread it through to Soroban load transaction generation. - Update example configs/docs and Windows VS project files to reflect removed/added sources.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/simulation/test/LoadGeneratorTests.cpp | Removes apply-load/realistic-invoke test paths and config knobs that no longer exist. |
| src/simulation/TxGenerator.h | Adds ApplyLoadTxProfile and updates invoke API to accept it. |
| src/simulation/TxGenerator.cpp | Uses the derived tx profile for Soroban load V2 generation and adjusts padding/auth sizing logic. |
| src/simulation/LoadGenerator.h | Removes SOROBAN_INVOKE_APPLY_LOAD mode from the enum. |
| src/simulation/LoadGenerator.cpp | Removes parsing/execution/status handling for the removed mode. |
| src/simulation/ApplyLoad.h | Removes “find limits for model tx” declarations; adds accessors and tx-profile state. |
| src/simulation/ApplyLoad.cpp | Derives ApplyLoadTxProfile in LIMIT_BASED mode and simplifies hot-archive sizing logic. |
| src/main/Config.h | Removes now-obsolete apply-load config fields and the removed apply-load mode. |
| src/main/Config.cpp | Removes config parsing for deleted apply-load fields/mode and updates validation message. |
| docs/software/commands.md | Updates apply-load mode documentation to remove the deleted mode. |
| docs/apply-load-limits-for-model-tx.cfg | Removes the obsolete example config file. |
| docs/apply-load-ledger-limits.cfg | Updates example config to match the simplified limits-driven approach. |
| docs/apply-load-for-meta.cfg | Updates example config to match the simplified limits-driven approach. |
| Builds/VisualStudio/stellar-core.vcxproj.filters | Updates VS filters to match current ledger/test sources. |
| Builds/VisualStudio/stellar-core.vcxproj | Updates VS project compilation units/headers accordingly. |
6ac4867 to
df6aeac
Compare
Now that we have a better understand of what works for the benchmark, we can simplify the config and limit it to just the ledger limits + TPL, and derive the transaction profile automatically (initially we planned a capability of using different tx distributions, but that doesn't seem to be too useful and it does add noise to already noisy benchmarks). Also remove some unused modes from apply load and loadgen.
e76f223 to
a717b54
Compare
There was relatively high probability that a contract instance is not invoked during the load generation, so increase the number of transactions to reduce it to a small enough value to never happen.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Now that we have a better understand of what works for the benchmark, we can simplify the config and limit it to just the ledger limits + TPL, and derive the transaction profile automatically (initially we planned a capability of using different tx distributions, but that doesn't seem to be too useful and it does add noise to already noisy benchmarks).
Also remove some unused modes from apply load and loadgen.
Checklist
clang-formatv8.0.0 (viamake formator the Visual Studio extension)