-
Notifications
You must be signed in to change notification settings - Fork 1k
Add apply-load mode for searching ledger limits. #5031
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,114 @@ | ||
| # This is the Stellar Core configuration example for using the load generation | ||
| # (apply-load) tool for finding the maximum ledger limits by applying a number | ||
| # of the equivalent 'model' transactions. | ||
| # | ||
| # The mode will find the maximum value of N, such that closing a ledger | ||
| # with N 'model' transactions takes less than a certain target time. Then | ||
| # it will find the actual ledger limits by multiplying the 'model' transaction | ||
| # dimensions by N. | ||
| # | ||
| # This is not meant to be used in any production contexts. | ||
| # | ||
| # The core with this configuration should be run using `./stellar-core apply-load --mode limits-for-model-tx` | ||
|
|
||
| # Enable load generation | ||
| ARTIFICIALLY_GENERATE_LOAD_FOR_TESTING=true | ||
|
|
||
| # Diagnostic events should generally be disabled, but can be enabled for debug | ||
| ENABLE_SOROBAN_DIAGNOSTIC_EVENTS = false | ||
|
|
||
| # Target average ledger close time. | ||
| APPLY_LOAD_TARGET_CLOSE_TIME_MS = 600 | ||
|
|
||
| # Network configuration section | ||
|
|
||
| # Most of the network configuration will be inferred automatically from the 'model' | ||
| # transaction (for transaction limits) and from the search itself (for the ledger) | ||
| # limits. Only the following limits need to be set: | ||
|
|
||
| # Maximum number of Soroban transactions to apply. This is the upper bound for the | ||
| # search. | ||
| APPLY_LOAD_MAX_SOROBAN_TX_COUNT = 2000 | ||
|
|
||
| # Number of the transaction clusters and thus apply threads. This will stay constant | ||
| # during the search, unlike all the other ledger limits. | ||
| APPLY_LOAD_LEDGER_MAX_DEPENDENT_TX_CLUSTERS = 8 | ||
|
|
||
| # The following section contains various parameters for the generated load. | ||
|
|
||
| # Number of ledgers to close for benchmarking each iteration of search. | ||
| # The average close time will then be compared to APPLY_LOAD_TARGET_CLOSE_TIME_MS. | ||
| APPLY_LOAD_NUM_LEDGERS = 10 | ||
|
|
||
| # Generate that many simple Classic payment transactions in every benchmark ledger. | ||
| # Note, that this will affect the close time. | ||
| APPLY_LOAD_CLASSIC_TXS_PER_LEDGER = 0 | ||
|
|
||
| # Size of every synthetic data entry generated. | ||
| # This setting affects both the size of the pre-generated Bucket List entries, | ||
| # and the size of every entry that a Soroban transaction reads/writes. | ||
| APPLY_LOAD_DATA_ENTRY_SIZE = 250 | ||
|
|
||
| # Bucket list pre-generation | ||
|
|
||
| # The benchmark will pre-generate ledger entries using the simplified ledger | ||
| # close process; the generated ledgers won't be reflected in the meta or | ||
| # history checkpoints. | ||
|
|
||
| # Faster settings, more shallow BL (up to level 6) | ||
| # Number of ledgers to close | ||
| APPLY_LOAD_BL_SIMULATED_LEDGERS = 10000 | ||
| # Write a batch of entries every that many ledgers | ||
| APPLY_LOAD_BL_WRITE_FREQUENCY = 1000 | ||
| # Write that many entries in every batch | ||
| APPLY_LOAD_BL_BATCH_SIZE = 1000 | ||
| # Write entry batches in every ledger of this many last ledgers | ||
| APPLY_LOAD_BL_LAST_BATCH_SIZE = 100 | ||
| # Write that many entries in every 'last' ledger | ||
| APPLY_LOAD_BL_LAST_BATCH_LEDGERS = 300 | ||
|
|
||
| # Slower settings, deeper BL (up to level 9) | ||
| #APPLY_LOAD_BL_SIMULATED_LEDGERS = 300000 | ||
| #APPLY_LOAD_BL_WRITE_FREQUENCY = 10000 | ||
| #APPLY_LOAD_BL_BATCH_SIZE = 10000 | ||
| #APPLY_LOAD_BL_LAST_BATCH_LEDGERS = 300 | ||
| #APPLY_LOAD_BL_LAST_BATCH_SIZE = 100 | ||
|
|
||
| # Settings for the generated 'model' transaction. | ||
| # Unlike the 'limit-based' apply-load mode, only a single value | ||
| # with `[1]` as distribution is allowed, thus only a single kind | ||
| # of transaction will be generated. | ||
|
|
||
| # Number of *disk* reads a transaction performs. Every disk read is restoration, | ||
| # so it's also a write (accounted for in NUM_RW_ENTRIES). | ||
| APPLY_LOAD_NUM_DISK_READ_ENTRIES = [1] | ||
| APPLY_LOAD_NUM_DISK_READ_ENTRIES_DISTRIBUTION = [1] | ||
|
|
||
| # Number of writes a transaction performs. | ||
| APPLY_LOAD_NUM_RW_ENTRIES = [5] | ||
| APPLY_LOAD_NUM_RW_ENTRIES_DISTRIBUTION = [1] | ||
|
|
||
| # Number of 80-byte events a transaction emits. | ||
| APPLY_LOAD_EVENT_COUNT = [15] | ||
| APPLY_LOAD_EVENT_COUNT_DISTRIBUTION = [1] | ||
|
|
||
| # Size of a generated transaction. | ||
| APPLY_LOAD_TX_SIZE_BYTES = [1650] | ||
| APPLY_LOAD_TX_SIZE_BYTES_DISTRIBUTION = [1] | ||
|
|
||
| # Number of instructions a transaction will use. | ||
| APPLY_LOAD_INSTRUCTIONS = [4250000] | ||
| APPLY_LOAD_INSTRUCTIONS_DISTRIBUTION = [1] | ||
|
|
||
|
|
||
| # Minimal core config boilerplate | ||
|
|
||
| RUN_STANDALONE=true | ||
| NODE_IS_VALIDATOR=true | ||
| UNSAFE_QUORUM=true | ||
| NETWORK_PASSPHRASE="Standalone Network ; February 2017" | ||
| NODE_SEED="SDQVDISRYN2JXBS7ICL7QJAEKB3HWBJFP2QECXG7GZICAHBK4UNJCWK2 self" | ||
|
|
||
| [QUORUM_SET] | ||
| THRESHOLD_PERCENT=100 | ||
| VALIDATORS=["$self"] | ||
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.