Skip to content

e2e: programmable ABCI method times#8638

Merged
cmwaters merged 3 commits intomasterfrom
callum/e2e/abci-delay
May 31, 2022
Merged

e2e: programmable ABCI method times#8638
cmwaters merged 3 commits intomasterfrom
callum/e2e/abci-delay

Conversation

@cmwaters
Copy link
Contributor

@cmwaters cmwaters commented May 28, 2022

Closes: #7797

This PR adds 5 configrable delays to the e2e application:

PrepareProposalDelayMS uint64 `toml:"prepare_proposal_delay_ms"`
ProcessProposalDelayMS uint64 `toml:"process_proposal_delay_ms"`
CheckTxDelayMS         uint64 `toml:"check_tx_delay_ms"`
VoteExtensionDelayMS   uint64 `toml:"vote_extension_delay_ms"`
FinalizeBlockDelayMS   uint64 `toml:"finalize_block_delay_ms"`

And includes these in the generator. By varying the time that these calls take we can better simulate the computational load that real applications experience

Comment on lines +141 to +142
manifest.PrepareProposalDelayMS = 200
manifest.ProcessProposalDelayMS = 200
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the "large" case, I would assume PrepareProposal and ProcessProposal are doing "immediate execution", so I'd set the delay to something similar to FinalizeBlock.
Just an idea, up to you.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aren't we explicitly not supporting immediate execution? We can still extend these out a little. They're so far quite arbitrary values

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By "immediate execution", I'm referring to the fact that they (PrepareProposal/ProcessProposal) fully execute the block, without waiting for FinalizeBlock to do it.
(N.B.: Even if they execute the block immediately, some of the the block's header fields, like app_hash, are still referring to the previous block, which is not supported in v0.36)

Copy link
Contributor

@sergio-mena sergio-mena left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this. Short PR, but valuable

@cmwaters cmwaters merged commit fefce8d into master May 31, 2022
@cmwaters cmwaters deleted the callum/e2e/abci-delay branch May 31, 2022 10:22
@sergio-mena sergio-mena mentioned this pull request Jul 22, 2022
35 tasks
@cmwaters cmwaters mentioned this pull request Aug 15, 2022
faddat pushed a commit to notional-labs/tendermint that referenced this pull request Apr 3, 2023
…#8638) (#515)

* e2e: programmable ABCI method times

* fix linting error

Co-authored-by: Callum Waters <cmwaters19@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Construct test case to exercise long block execution times.

2 participants