Rename AccountsPacakge to SnapshotPackage and AccountsPackagePre to AccountsPackage (#19231)

Renaming these types to better communicate their usages, which will
further diverge as incremental snapshot support is added.

With the new names, AccountsPacakge now refers to the type between
AccountsBackgroundProcess and AccountsHashVerifier, and SnapshotPackage
refers to the type between AccountsHashVerifier and
SnapshotPackagerService.
This commit is contained in:
Brooks Prumo
2021-08-13 16:08:09 -05:00
committed by GitHub
parent 32501866b7
commit 176036aa58
5 changed files with 78 additions and 76 deletions

View File

@ -11,7 +11,8 @@ use solana_runtime::{
accounts_db,
snapshot_archive_info::SnapshotArchiveInfoGetter,
snapshot_config::SnapshotConfig,
snapshot_package::{AccountsPackage, AccountsPackagePre, AccountsPackageReceiver},
snapshot_package::{AccountsPackage, AccountsPackageReceiver, SnapshotPackage},
snapshot_utils,
};
use solana_sdk::{clock::Slot, hash::Hash, pubkey::Pubkey};
use std::collections::{HashMap, HashSet};
@ -61,7 +62,7 @@ impl AccountsHashVerifier {
Some(accounts_db::make_min_priority_thread_pool());
}
Self::process_accounts_package_pre(
Self::process_accounts_package(
accounts_package,
&cluster_info,
trusted_validators.as_ref(),
@ -86,8 +87,8 @@ impl AccountsHashVerifier {
}
#[allow(clippy::too_many_arguments)]
fn process_accounts_package_pre(
accounts_package: AccountsPackagePre,
fn process_accounts_package(
accounts_package: AccountsPackage,
cluster_info: &ClusterInfo,
trusted_validators: Option<&HashSet<Pubkey>>,
halt_on_trusted_validator_accounts_hash_mismatch: bool,
@ -98,13 +99,10 @@ impl AccountsHashVerifier {
snapshot_config: Option<&SnapshotConfig>,
thread_pool: Option<&ThreadPool>,
) {
let accounts_package = solana_runtime::snapshot_utils::process_accounts_package_pre(
accounts_package,
thread_pool,
None,
);
Self::process_accounts_package(
accounts_package,
let snapshot_package =
snapshot_utils::process_accounts_package(accounts_package, thread_pool, None);
Self::process_snapshot_package(
snapshot_package,
cluster_info,
trusted_validators,
halt_on_trusted_validator_accounts_hash_mismatch,
@ -116,8 +114,8 @@ impl AccountsHashVerifier {
);
}
fn process_accounts_package(
accounts_package: AccountsPackage,
fn process_snapshot_package(
snapshot_package: SnapshotPackage,
cluster_info: &ClusterInfo,
trusted_validators: Option<&HashSet<Pubkey>>,
halt_on_trusted_validator_accounts_hash_mismatch: bool,
@ -127,19 +125,19 @@ impl AccountsHashVerifier {
fault_injection_rate_slots: u64,
snapshot_config: Option<&SnapshotConfig>,
) {
let hash = *accounts_package.hash();
let hash = *snapshot_package.hash();
if fault_injection_rate_slots != 0
&& accounts_package.slot() % fault_injection_rate_slots == 0
&& snapshot_package.slot() % fault_injection_rate_slots == 0
{
// For testing, publish an invalid hash to gossip.
use rand::{thread_rng, Rng};
use solana_sdk::hash::extend_and_hash;
warn!("inserting fault at slot: {}", accounts_package.slot());
warn!("inserting fault at slot: {}", snapshot_package.slot());
let rand = thread_rng().gen_range(0, 10);
let hash = extend_and_hash(&hash, &[rand]);
hashes.push((accounts_package.slot(), hash));
hashes.push((snapshot_package.slot(), hash));
} else {
hashes.push((accounts_package.slot(), hash));
hashes.push((snapshot_package.slot(), hash));
}
while hashes.len() > MAX_SNAPSHOT_HASHES {
@ -157,11 +155,11 @@ impl AccountsHashVerifier {
}
if let Some(snapshot_config) = snapshot_config {
if accounts_package.block_height % snapshot_config.full_snapshot_archive_interval_slots
if snapshot_package.block_height % snapshot_config.full_snapshot_archive_interval_slots
== 0
{
if let Some(pending_snapshot_package) = pending_snapshot_package {
*pending_snapshot_package.lock().unwrap() = Some(accounts_package);
*pending_snapshot_package.lock().unwrap() = Some(snapshot_package);
}
}
}
@ -306,7 +304,7 @@ mod tests {
let hash = hash(&[i as u8]);
let archive_format = ArchiveFormat::TarBzip2;
let snapshot_version = SnapshotVersion::default();
let accounts_package = AccountsPackage::new(
let snapshot_package = SnapshotPackage::new(
slot,
block_height,
slot_deltas,
@ -318,8 +316,8 @@ mod tests {
snapshot_version,
);
AccountsHashVerifier::process_accounts_package(
accounts_package,
AccountsHashVerifier::process_snapshot_package(
snapshot_package,
&cluster_info,
Some(&trusted_validators),
false,

View File

@ -1,6 +1,6 @@
use solana_gossip::cluster_info::{ClusterInfo, MAX_SNAPSHOT_HASHES};
use solana_runtime::{
snapshot_archive_info::SnapshotArchiveInfoGetter, snapshot_package::AccountsPackage,
snapshot_archive_info::SnapshotArchiveInfoGetter, snapshot_package::SnapshotPackage,
snapshot_utils,
};
use solana_sdk::{clock::Slot, hash::Hash};
@ -13,7 +13,7 @@ use std::{
time::Duration,
};
pub type PendingSnapshotPackage = Arc<Mutex<Option<AccountsPackage>>>;
pub type PendingSnapshotPackage = Arc<Mutex<Option<SnapshotPackage>>>;
pub struct SnapshotPackagerService {
t_snapshot_packager: JoinHandle<()>,
@ -81,7 +81,7 @@ mod tests {
use solana_runtime::{
accounts_db::AccountStorageEntry,
bank::BankSlotDelta,
snapshot_package::AccountsPackage,
snapshot_package::SnapshotPackage,
snapshot_utils::{self, ArchiveFormat, SnapshotVersion, SNAPSHOT_STATUS_CACHE_FILE_NAME},
};
use solana_sdk::hash::Hash;
@ -165,7 +165,7 @@ mod tests {
&Hash::default(),
ArchiveFormat::TarBzip2,
);
let snapshot_package = AccountsPackage::new(
let snapshot_package = SnapshotPackage::new(
5,
5,
vec![],

View File

@ -66,7 +66,7 @@ mod tests {
genesis_utils::{create_genesis_config, GenesisConfigInfo},
snapshot_archive_info::FullSnapshotArchiveInfo,
snapshot_config::SnapshotConfig,
snapshot_package::AccountsPackagePre,
snapshot_package::AccountsPackage,
snapshot_utils::{
self, ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
},
@ -275,7 +275,7 @@ mod tests {
let snapshot_path = &snapshot_config.snapshot_path;
let last_bank_snapshot_info = snapshot_utils::get_highest_bank_snapshot_info(snapshot_path)
.expect("no snapshots found in path");
let snapshot_package = AccountsPackagePre::new_full_snapshot_package(
let accounts_package = AccountsPackage::new_for_full_snapshot(
last_bank,
&last_bank_snapshot_info,
snapshot_path,
@ -287,8 +287,8 @@ mod tests {
None,
)
.unwrap();
let snapshot_package = snapshot_utils::process_accounts_package_pre(
snapshot_package,
let snapshot_package = snapshot_utils::process_accounts_package(
accounts_package,
Some(last_bank.get_thread_pool()),
None,
);
@ -508,18 +508,17 @@ mod tests {
let _package_receiver = std::thread::Builder::new()
.name("package-receiver".to_string())
.spawn(move || {
while let Ok(mut snapshot_package) = receiver.recv() {
while let Ok(mut accounts_package) = receiver.recv() {
// Only package the latest
while let Ok(new_snapshot_package) = receiver.try_recv() {
snapshot_package = new_snapshot_package;
while let Ok(new_accounts_package) = receiver.try_recv() {
accounts_package = new_accounts_package;
}
let snapshot_package =
solana_runtime::snapshot_utils::process_accounts_package_pre(
snapshot_package,
Some(&thread_pool),
None,
);
let snapshot_package = solana_runtime::snapshot_utils::process_accounts_package(
accounts_package,
Some(&thread_pool),
None,
);
*pending_snapshot_package.lock().unwrap() = Some(snapshot_package);
}