BankingStage Refactor: Committer Simplify (#29958)

This commit is contained in:
Andrew Fitzgerald 2023-02-01 15:44:53 -08:00 committed by GitHub
parent 232e252014
commit c549129974
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 46 deletions

View File

@ -988,13 +988,11 @@ impl BankingStage {
}; };
} }
let sanitized_txs = batch.sanitized_transactions();
let (commit_time_us, commit_transaction_statuses) = if executed_transactions_count != 0 { let (commit_time_us, commit_transaction_statuses) = if executed_transactions_count != 0 {
Committer::commit_transactions( Committer::commit_transactions(
batch, batch,
&mut loaded_transactions, &mut loaded_transactions,
execution_results, execution_results,
sanitized_txs,
starting_transaction_index, starting_transaction_index,
bank, bank,
&mut pre_balance_info, &mut pre_balance_info,
@ -1021,7 +1019,7 @@ impl BankingStage {
load_execute_time.as_us(), load_execute_time.as_us(),
record_time.as_us(), record_time.as_us(),
commit_time_us, commit_time_us,
sanitized_txs.len(), batch.sanitized_transactions().len(),
); );
debug!( debug!(

View File

@ -4,7 +4,7 @@ use {
solana_ledger::{ solana_ledger::{
blockstore_processor::TransactionStatusSender, token_balances::collect_token_balances, blockstore_processor::TransactionStatusSender, token_balances::collect_token_balances,
}, },
solana_measure::measure, solana_measure::{measure, measure_us},
solana_runtime::{ solana_runtime::{
accounts::TransactionLoadResult, accounts::TransactionLoadResult,
bank::{ bank::{
@ -15,7 +15,7 @@ use {
transaction_batch::TransactionBatch, transaction_batch::TransactionBatch,
vote_sender_types::ReplayVoteSender, vote_sender_types::ReplayVoteSender,
}, },
solana_sdk::{saturating_add_assign, transaction::SanitizedTransaction}, solana_sdk::saturating_add_assign,
solana_transaction_status::token_balances::TransactionTokenBalancesSet, solana_transaction_status::token_balances::TransactionTokenBalancesSet,
std::sync::Arc, std::sync::Arc,
}; };
@ -34,7 +34,6 @@ impl Committer {
batch: &TransactionBatch, batch: &TransactionBatch,
loaded_transactions: &mut [TransactionLoadResult], loaded_transactions: &mut [TransactionLoadResult],
execution_results: Vec<TransactionExecutionResult>, execution_results: Vec<TransactionExecutionResult>,
sanitized_txs: &[SanitizedTransaction],
starting_transaction_index: Option<usize>, starting_transaction_index: Option<usize>,
bank: &Arc<Bank>, bank: &Arc<Bank>,
pre_balance_info: &mut PreBalanceInfo, pre_balance_info: &mut PreBalanceInfo,
@ -54,27 +53,22 @@ impl Committer {
let (last_blockhash, lamports_per_signature) = let (last_blockhash, lamports_per_signature) =
bank.last_blockhash_and_lamports_per_signature(); bank.last_blockhash_and_lamports_per_signature();
let (tx_results, commit_time) = measure!( let (tx_results, commit_time_us) = measure_us!(bank.commit_transactions(
bank.commit_transactions( batch.sanitized_transactions(),
sanitized_txs, loaded_transactions,
loaded_transactions, execution_results,
execution_results, last_blockhash,
last_blockhash, lamports_per_signature,
lamports_per_signature, CommitTransactionCounts {
CommitTransactionCounts { committed_transactions_count: executed_transactions_count as u64,
committed_transactions_count: executed_transactions_count as u64, committed_non_vote_transactions_count: executed_non_vote_transactions_count as u64,
committed_non_vote_transactions_count: executed_non_vote_transactions_count committed_with_failure_result_count: executed_transactions_count
as u64, .saturating_sub(executed_with_successful_result_count)
committed_with_failure_result_count: executed_transactions_count as u64,
.saturating_sub(executed_with_successful_result_count) signature_count,
as u64, },
signature_count, &mut execute_and_commit_timings.execute_timings,
}, ));
&mut execute_and_commit_timings.execute_timings,
),
"commit",
);
let commit_time_us = commit_time.as_us();
execute_and_commit_timings.commit_us = commit_time_us; execute_and_commit_timings.commit_us = commit_time_us;
let commit_transaction_statuses = tx_results let commit_transaction_statuses = tx_results
@ -88,25 +82,22 @@ impl Committer {
}) })
.collect(); .collect();
let (_, find_and_send_votes_time) = measure!( let ((), find_and_send_votes_us) = measure_us!({
{ bank_utils::find_and_send_votes(
bank_utils::find_and_send_votes( batch.sanitized_transactions(),
sanitized_txs, &tx_results,
&tx_results, Some(replay_vote_sender),
Some(replay_vote_sender), );
); Self::collect_balances_and_send_status_batch(
Self::collect_balances_and_send_status_batch( transaction_status_sender,
transaction_status_sender, tx_results,
tx_results, bank,
bank, batch,
batch, pre_balance_info,
pre_balance_info, starting_transaction_index,
starting_transaction_index, );
); });
}, execute_and_commit_timings.find_and_send_votes_us = find_and_send_votes_us;
"find_and_send_votes",
);
execute_and_commit_timings.find_and_send_votes_us = find_and_send_votes_time.as_us();
(commit_time_us, commit_transaction_statuses) (commit_time_us, commit_transaction_statuses)
} }