Add LastFullSnapshotSlot to SnapshotConfig (#19341)

This commit is contained in:
Brooks Prumo 2021-08-20 12:06:53 -05:00 committed by GitHub
parent 3e5ba8dcaa
commit 4d361af976
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 27 additions and 8 deletions

View File

@ -224,6 +224,7 @@ mod tests {
use super::*;
use solana_gossip::{cluster_info::make_accounts_hashes_message, contact_info::ContactInfo};
use solana_runtime::{
snapshot_config::LastFullSnapshotSlot,
snapshot_package::SnapshotType,
snapshot_utils::{ArchiveFormat, SnapshotVersion},
};
@ -297,6 +298,7 @@ mod tests {
archive_format: ArchiveFormat::Tar,
snapshot_version: SnapshotVersion::default(),
maximum_snapshots_to_retain: usize::MAX,
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
};
for i in 0..MAX_SNAPSHOT_HASHES + 1 {
let slot = full_snapshot_archive_interval_slots + i as u64;

View File

@ -15,7 +15,7 @@ use {
solana_runtime::{
genesis_utils::create_genesis_config_with_leader_ex,
hardened_unpack::MAX_GENESIS_ARCHIVE_UNPACKED_SIZE,
snapshot_config::SnapshotConfig,
snapshot_config::{LastFullSnapshotSlot, SnapshotConfig},
snapshot_utils::{
ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
},
@ -528,6 +528,7 @@ impl TestValidator {
archive_format: ArchiveFormat::Tar,
snapshot_version: SnapshotVersion::default(),
maximum_snapshots_to_retain: DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
}),
enforce_ulimit_nofile: false,
warp_slot: config.warp_slot,

View File

@ -65,7 +65,7 @@ mod tests {
bank_forks::BankForks,
genesis_utils::{create_genesis_config, GenesisConfigInfo},
snapshot_archive_info::FullSnapshotArchiveInfo,
snapshot_config::SnapshotConfig,
snapshot_config::{LastFullSnapshotSlot, SnapshotConfig},
snapshot_package::{AccountsPackage, PendingSnapshotPackage},
snapshot_utils::{
self, ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
@ -146,6 +146,7 @@ mod tests {
archive_format: ArchiveFormat::TarBzip2,
snapshot_version,
maximum_snapshots_to_retain: DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
};
bank_forks.set_snapshot_config(Some(snapshot_config.clone()));
SnapshotTestConfig {

View File

@ -31,7 +31,7 @@ use solana_runtime::{
bank_forks::BankForks,
hardened_unpack::{open_genesis_config, MAX_GENESIS_ARCHIVE_UNPACKED_SIZE},
snapshot_archive_info::SnapshotArchiveInfoGetter,
snapshot_config::SnapshotConfig,
snapshot_config::{LastFullSnapshotSlot, SnapshotConfig},
snapshot_utils::{
self, ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
},
@ -719,6 +719,7 @@ fn load_bank_forks(
archive_format: ArchiveFormat::TarBzip2,
snapshot_version: SnapshotVersion::default(),
maximum_snapshots_to_retain: DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
})
};
let account_paths = if let Some(account_paths) = arg_matches.value_of("account_paths") {

View File

@ -43,7 +43,7 @@ use {
},
solana_runtime::{
snapshot_archive_info::SnapshotArchiveInfoGetter,
snapshot_config::SnapshotConfig,
snapshot_config::{LastFullSnapshotSlot, SnapshotConfig},
snapshot_utils::{self, ArchiveFormat},
},
solana_sdk::{
@ -3478,6 +3478,7 @@ fn setup_snapshot_validator_config(
archive_format: ArchiveFormat::TarBzip2,
snapshot_version: snapshot_utils::SnapshotVersion::default(),
maximum_snapshots_to_retain: snapshot_utils::DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
};
// Create the account paths

View File

@ -23,7 +23,7 @@ use {
bank_forks::BankForks,
commitment::BlockCommitmentCache,
hardened_unpack::MAX_GENESIS_ARCHIVE_UNPACKED_SIZE,
snapshot_config::SnapshotConfig,
snapshot_config::{LastFullSnapshotSlot, SnapshotConfig},
snapshot_utils::{self, ArchiveFormat},
},
solana_sdk::{clock::Slot, exit::Exit, genesis_config::GenesisConfig, hash::Hash},
@ -263,6 +263,7 @@ impl ReplicaNode {
snapshot_version: snapshot_utils::SnapshotVersion::default(),
maximum_snapshots_to_retain:
snapshot_utils::DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
};
let bank_info =

View File

@ -17,7 +17,7 @@ use {
solana_runtime::{
accounts_index::AccountSecondaryIndexes,
snapshot_archive_info::SnapshotArchiveInfoGetter,
snapshot_config::SnapshotConfig,
snapshot_config::{LastFullSnapshotSlot, SnapshotConfig},
snapshot_utils::{self, ArchiveFormat},
},
solana_sdk::{
@ -127,6 +127,7 @@ fn setup_snapshot_validator_config(
archive_format: ArchiveFormat::TarBzip2,
snapshot_version: snapshot_utils::SnapshotVersion::default(),
maximum_snapshots_to_retain: snapshot_utils::DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
};
// Create the account paths

View File

@ -491,6 +491,7 @@ mod tests {
},
solana_runtime::{
bank::Bank,
snapshot_config::LastFullSnapshotSlot,
snapshot_utils::{
ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
},
@ -608,6 +609,7 @@ mod tests {
archive_format: ArchiveFormat::TarBzip2,
snapshot_version: SnapshotVersion::default(),
maximum_snapshots_to_retain: DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
}),
bank_forks,
RpcHealth::stub(),

View File

@ -1,7 +1,10 @@
use crate::snapshot_utils::ArchiveFormat;
use crate::snapshot_utils::SnapshotVersion;
use solana_sdk::clock::Slot;
use std::path::PathBuf;
use std::{
path::PathBuf,
sync::{Arc, RwLock},
};
/// Snapshot configuration and runtime information
#[derive(Clone, Debug)]
@ -26,4 +29,9 @@ pub struct SnapshotConfig {
/// Maximum number of full snapshot archives to retain
pub maximum_snapshots_to_retain: usize,
/// Runtime information of the last full snapshot slot
pub last_full_snapshot_slot: LastFullSnapshotSlot,
}
pub type LastFullSnapshotSlot = Arc<RwLock<Option<Slot>>>;

View File

@ -49,7 +49,7 @@ use {
},
hardened_unpack::MAX_GENESIS_ARCHIVE_UNPACKED_SIZE,
snapshot_archive_info::SnapshotArchiveInfoGetter,
snapshot_config::SnapshotConfig,
snapshot_config::{LastFullSnapshotSlot, SnapshotConfig},
snapshot_utils::{
self, ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
},
@ -2621,6 +2621,7 @@ pub fn main() {
archive_format,
snapshot_version,
maximum_snapshots_to_retain,
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
});
validator_config.accounts_hash_interval_slots =