Clean up Bank::commit_transactions parameters

This commit is contained in:
Justin Starry 2022-05-09 21:19:32 +08:00
parent cad1c41ce2
commit e66ea7cb6a
2 changed files with 40 additions and 15 deletions

View File

@ -29,7 +29,8 @@ use {
solana_program_runtime::timings::ExecuteTimings,
solana_runtime::{
bank::{
Bank, LoadAndExecuteTransactionsOutput, TransactionBalancesSet, TransactionCheckResult,
Bank, CommitTransactionCounts, LoadAndExecuteTransactionsOutput,
TransactionBalancesSet, TransactionCheckResult,
},
bank_utils,
cost_model::{CostModel, TransactionCost},
@ -1229,6 +1230,8 @@ impl BankingStage {
"execution_results_to_transactions",
);
let (last_blockhash, lamports_per_signature) =
bank.last_blockhash_and_lamports_per_signature();
let (freeze_lock, freeze_lock_time) =
Measure::this(|_| bank.freeze_lock(), (), "freeze_lock");
execute_and_commit_timings.freeze_lock_us = freeze_lock_time.as_us();
@ -1283,11 +1286,15 @@ impl BankingStage {
sanitized_txs,
&mut loaded_transactions,
execution_results,
executed_transactions_count as u64,
executed_transactions_count
.saturating_sub(executed_with_successful_result_count)
as u64,
signature_count,
last_blockhash,
lamports_per_signature,
CommitTransactionCounts {
committed_transactions_count: executed_transactions_count as u64,
committed_with_failure_result_count: executed_transactions_count
.saturating_sub(executed_with_successful_result_count)
as u64,
signature_count,
},
&mut execute_and_commit_timings.execute_timings,
)
},

View File

@ -1368,6 +1368,12 @@ struct PrevEpochInflationRewards {
foundation_rate: f64,
}
pub struct CommitTransactionCounts {
pub committed_transactions_count: u64,
pub committed_with_failure_result_count: u64,
pub signature_count: u64,
}
impl Bank {
pub fn default_for_tests() -> Self {
Self::default_with_accounts(Accounts::default_for_tests())
@ -4745,9 +4751,9 @@ impl Bank {
sanitized_txs: &[SanitizedTransaction],
loaded_txs: &mut [TransactionLoadResult],
execution_results: Vec<TransactionExecutionResult>,
committed_transactions_count: u64,
committed_with_failure_result_count: u64,
signature_count: u64,
last_blockhash: Hash,
lamports_per_signature: u64,
counts: CommitTransactionCounts,
timings: &mut ExecuteTimings,
) -> TransactionResults {
assert!(
@ -4755,6 +4761,12 @@ impl Bank {
"commit_transactions() working on a bank that is already frozen or is undergoing freezing!"
);
let CommitTransactionCounts {
committed_transactions_count,
committed_with_failure_result_count,
signature_count,
} = counts;
let tx_count = if self.bank_tranaction_count_fix_enabled() {
committed_transactions_count
} else {
@ -4783,7 +4795,6 @@ impl Bank {
.fetch_max(committed_transactions_count, Relaxed);
}
let (blockhash, lamports_per_signature) = self.last_blockhash_and_lamports_per_signature();
let mut write_time = Measure::start("write_time");
self.rc.accounts.store_cached(
self.slot(),
@ -4791,7 +4802,7 @@ impl Bank {
&execution_results,
loaded_txs,
&self.rent_collector,
&blockhash,
&last_blockhash,
lamports_per_signature,
self.leave_nonce_on_success(),
);
@ -5723,14 +5734,21 @@ impl Bank {
None,
);
let (last_blockhash, lamports_per_signature) =
self.last_blockhash_and_lamports_per_signature();
let results = self.commit_transactions(
batch.sanitized_transactions(),
&mut loaded_transactions,
execution_results,
executed_transactions_count as u64,
executed_transactions_count.saturating_sub(executed_with_successful_result_count)
as u64,
signature_count,
last_blockhash,
lamports_per_signature,
CommitTransactionCounts {
committed_transactions_count: executed_transactions_count as u64,
committed_with_failure_result_count: executed_transactions_count
.saturating_sub(executed_with_successful_result_count)
as u64,
signature_count,
},
timings,
);
let post_balances = if collect_balances {