[execution-pool] Create iterator on TransactionShuffler #15613
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
Context
The
TransactionShuffler
trait defines a customizable strategy for shuffling transactions to minimize sequential execution and promote parallelism in transaction processing. Previously the shuffler type was hard-coded in the execution pipeline as aUseCaseAwareShuffler
.Objective
The goal of this PR was two-fold:
execute_stage
function, create aTransactionShufflerIterator
that works with anyTransactionShuffler
provided in theExecuteBlockCommand
. As mentioned above, this was previously hard-coded to use aUseCaseAwareTransactionShuffler
. Part of this work included extending theTransactionShuffler
trait to include two new functions:signed_transaction_iterator
signature_verified_transaction_iterator
ShuffledTransactionIterator
that works onSenderAwareTransaction
, a new trait that mimics functionality found inUseCaseAwareTransaction
.Additional work was done to refactor the
SenderAwareShuffler
to more closely resemble theUseCaseAwareShuffler
for consistency.How Has This Been Tested?
SenderAwareShuffler
unit tests.quorum_store::tests::batch_proof_queue_test::test_proof_pull_proofs_with_duplicates
round_manager::round_manager_test::commit_pipeline_test
cargo test --package aptos-consensus --lib transaction_shuffler::sender_aware::tests