Add LastFullSnapshotSlot to SnapshotConfig (#19341)
This commit is contained in:
parent
3e5ba8dcaa
commit
4d361af976
|
@ -224,6 +224,7 @@ mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use solana_gossip::{cluster_info::make_accounts_hashes_message, contact_info::ContactInfo};
|
use solana_gossip::{cluster_info::make_accounts_hashes_message, contact_info::ContactInfo};
|
||||||
use solana_runtime::{
|
use solana_runtime::{
|
||||||
|
snapshot_config::LastFullSnapshotSlot,
|
||||||
snapshot_package::SnapshotType,
|
snapshot_package::SnapshotType,
|
||||||
snapshot_utils::{ArchiveFormat, SnapshotVersion},
|
snapshot_utils::{ArchiveFormat, SnapshotVersion},
|
||||||
};
|
};
|
||||||
|
@ -297,6 +298,7 @@ mod tests {
|
||||||
archive_format: ArchiveFormat::Tar,
|
archive_format: ArchiveFormat::Tar,
|
||||||
snapshot_version: SnapshotVersion::default(),
|
snapshot_version: SnapshotVersion::default(),
|
||||||
maximum_snapshots_to_retain: usize::MAX,
|
maximum_snapshots_to_retain: usize::MAX,
|
||||||
|
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
|
||||||
};
|
};
|
||||||
for i in 0..MAX_SNAPSHOT_HASHES + 1 {
|
for i in 0..MAX_SNAPSHOT_HASHES + 1 {
|
||||||
let slot = full_snapshot_archive_interval_slots + i as u64;
|
let slot = full_snapshot_archive_interval_slots + i as u64;
|
||||||
|
|
|
@ -15,7 +15,7 @@ use {
|
||||||
solana_runtime::{
|
solana_runtime::{
|
||||||
genesis_utils::create_genesis_config_with_leader_ex,
|
genesis_utils::create_genesis_config_with_leader_ex,
|
||||||
hardened_unpack::MAX_GENESIS_ARCHIVE_UNPACKED_SIZE,
|
hardened_unpack::MAX_GENESIS_ARCHIVE_UNPACKED_SIZE,
|
||||||
snapshot_config::SnapshotConfig,
|
snapshot_config::{LastFullSnapshotSlot, SnapshotConfig},
|
||||||
snapshot_utils::{
|
snapshot_utils::{
|
||||||
ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
||||||
},
|
},
|
||||||
|
@ -528,6 +528,7 @@ impl TestValidator {
|
||||||
archive_format: ArchiveFormat::Tar,
|
archive_format: ArchiveFormat::Tar,
|
||||||
snapshot_version: SnapshotVersion::default(),
|
snapshot_version: SnapshotVersion::default(),
|
||||||
maximum_snapshots_to_retain: DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
maximum_snapshots_to_retain: DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
||||||
|
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
|
||||||
}),
|
}),
|
||||||
enforce_ulimit_nofile: false,
|
enforce_ulimit_nofile: false,
|
||||||
warp_slot: config.warp_slot,
|
warp_slot: config.warp_slot,
|
||||||
|
|
|
@ -65,7 +65,7 @@ mod tests {
|
||||||
bank_forks::BankForks,
|
bank_forks::BankForks,
|
||||||
genesis_utils::{create_genesis_config, GenesisConfigInfo},
|
genesis_utils::{create_genesis_config, GenesisConfigInfo},
|
||||||
snapshot_archive_info::FullSnapshotArchiveInfo,
|
snapshot_archive_info::FullSnapshotArchiveInfo,
|
||||||
snapshot_config::SnapshotConfig,
|
snapshot_config::{LastFullSnapshotSlot, SnapshotConfig},
|
||||||
snapshot_package::{AccountsPackage, PendingSnapshotPackage},
|
snapshot_package::{AccountsPackage, PendingSnapshotPackage},
|
||||||
snapshot_utils::{
|
snapshot_utils::{
|
||||||
self, ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
self, ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
||||||
|
@ -146,6 +146,7 @@ mod tests {
|
||||||
archive_format: ArchiveFormat::TarBzip2,
|
archive_format: ArchiveFormat::TarBzip2,
|
||||||
snapshot_version,
|
snapshot_version,
|
||||||
maximum_snapshots_to_retain: DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
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()));
|
bank_forks.set_snapshot_config(Some(snapshot_config.clone()));
|
||||||
SnapshotTestConfig {
|
SnapshotTestConfig {
|
||||||
|
|
|
@ -31,7 +31,7 @@ use solana_runtime::{
|
||||||
bank_forks::BankForks,
|
bank_forks::BankForks,
|
||||||
hardened_unpack::{open_genesis_config, MAX_GENESIS_ARCHIVE_UNPACKED_SIZE},
|
hardened_unpack::{open_genesis_config, MAX_GENESIS_ARCHIVE_UNPACKED_SIZE},
|
||||||
snapshot_archive_info::SnapshotArchiveInfoGetter,
|
snapshot_archive_info::SnapshotArchiveInfoGetter,
|
||||||
snapshot_config::SnapshotConfig,
|
snapshot_config::{LastFullSnapshotSlot, SnapshotConfig},
|
||||||
snapshot_utils::{
|
snapshot_utils::{
|
||||||
self, ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
self, ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
||||||
},
|
},
|
||||||
|
@ -719,6 +719,7 @@ fn load_bank_forks(
|
||||||
archive_format: ArchiveFormat::TarBzip2,
|
archive_format: ArchiveFormat::TarBzip2,
|
||||||
snapshot_version: SnapshotVersion::default(),
|
snapshot_version: SnapshotVersion::default(),
|
||||||
maximum_snapshots_to_retain: DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
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") {
|
let account_paths = if let Some(account_paths) = arg_matches.value_of("account_paths") {
|
||||||
|
|
|
@ -43,7 +43,7 @@ use {
|
||||||
},
|
},
|
||||||
solana_runtime::{
|
solana_runtime::{
|
||||||
snapshot_archive_info::SnapshotArchiveInfoGetter,
|
snapshot_archive_info::SnapshotArchiveInfoGetter,
|
||||||
snapshot_config::SnapshotConfig,
|
snapshot_config::{LastFullSnapshotSlot, SnapshotConfig},
|
||||||
snapshot_utils::{self, ArchiveFormat},
|
snapshot_utils::{self, ArchiveFormat},
|
||||||
},
|
},
|
||||||
solana_sdk::{
|
solana_sdk::{
|
||||||
|
@ -3478,6 +3478,7 @@ fn setup_snapshot_validator_config(
|
||||||
archive_format: ArchiveFormat::TarBzip2,
|
archive_format: ArchiveFormat::TarBzip2,
|
||||||
snapshot_version: snapshot_utils::SnapshotVersion::default(),
|
snapshot_version: snapshot_utils::SnapshotVersion::default(),
|
||||||
maximum_snapshots_to_retain: snapshot_utils::DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
maximum_snapshots_to_retain: snapshot_utils::DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
||||||
|
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Create the account paths
|
// Create the account paths
|
||||||
|
|
|
@ -23,7 +23,7 @@ use {
|
||||||
bank_forks::BankForks,
|
bank_forks::BankForks,
|
||||||
commitment::BlockCommitmentCache,
|
commitment::BlockCommitmentCache,
|
||||||
hardened_unpack::MAX_GENESIS_ARCHIVE_UNPACKED_SIZE,
|
hardened_unpack::MAX_GENESIS_ARCHIVE_UNPACKED_SIZE,
|
||||||
snapshot_config::SnapshotConfig,
|
snapshot_config::{LastFullSnapshotSlot, SnapshotConfig},
|
||||||
snapshot_utils::{self, ArchiveFormat},
|
snapshot_utils::{self, ArchiveFormat},
|
||||||
},
|
},
|
||||||
solana_sdk::{clock::Slot, exit::Exit, genesis_config::GenesisConfig, hash::Hash},
|
solana_sdk::{clock::Slot, exit::Exit, genesis_config::GenesisConfig, hash::Hash},
|
||||||
|
@ -263,6 +263,7 @@ impl ReplicaNode {
|
||||||
snapshot_version: snapshot_utils::SnapshotVersion::default(),
|
snapshot_version: snapshot_utils::SnapshotVersion::default(),
|
||||||
maximum_snapshots_to_retain:
|
maximum_snapshots_to_retain:
|
||||||
snapshot_utils::DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
snapshot_utils::DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
||||||
|
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
|
||||||
};
|
};
|
||||||
|
|
||||||
let bank_info =
|
let bank_info =
|
||||||
|
|
|
@ -17,7 +17,7 @@ use {
|
||||||
solana_runtime::{
|
solana_runtime::{
|
||||||
accounts_index::AccountSecondaryIndexes,
|
accounts_index::AccountSecondaryIndexes,
|
||||||
snapshot_archive_info::SnapshotArchiveInfoGetter,
|
snapshot_archive_info::SnapshotArchiveInfoGetter,
|
||||||
snapshot_config::SnapshotConfig,
|
snapshot_config::{LastFullSnapshotSlot, SnapshotConfig},
|
||||||
snapshot_utils::{self, ArchiveFormat},
|
snapshot_utils::{self, ArchiveFormat},
|
||||||
},
|
},
|
||||||
solana_sdk::{
|
solana_sdk::{
|
||||||
|
@ -127,6 +127,7 @@ fn setup_snapshot_validator_config(
|
||||||
archive_format: ArchiveFormat::TarBzip2,
|
archive_format: ArchiveFormat::TarBzip2,
|
||||||
snapshot_version: snapshot_utils::SnapshotVersion::default(),
|
snapshot_version: snapshot_utils::SnapshotVersion::default(),
|
||||||
maximum_snapshots_to_retain: snapshot_utils::DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
maximum_snapshots_to_retain: snapshot_utils::DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
||||||
|
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Create the account paths
|
// Create the account paths
|
||||||
|
|
|
@ -491,6 +491,7 @@ mod tests {
|
||||||
},
|
},
|
||||||
solana_runtime::{
|
solana_runtime::{
|
||||||
bank::Bank,
|
bank::Bank,
|
||||||
|
snapshot_config::LastFullSnapshotSlot,
|
||||||
snapshot_utils::{
|
snapshot_utils::{
|
||||||
ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
||||||
},
|
},
|
||||||
|
@ -608,6 +609,7 @@ mod tests {
|
||||||
archive_format: ArchiveFormat::TarBzip2,
|
archive_format: ArchiveFormat::TarBzip2,
|
||||||
snapshot_version: SnapshotVersion::default(),
|
snapshot_version: SnapshotVersion::default(),
|
||||||
maximum_snapshots_to_retain: DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
maximum_snapshots_to_retain: DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
||||||
|
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
|
||||||
}),
|
}),
|
||||||
bank_forks,
|
bank_forks,
|
||||||
RpcHealth::stub(),
|
RpcHealth::stub(),
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
use crate::snapshot_utils::ArchiveFormat;
|
use crate::snapshot_utils::ArchiveFormat;
|
||||||
use crate::snapshot_utils::SnapshotVersion;
|
use crate::snapshot_utils::SnapshotVersion;
|
||||||
use solana_sdk::clock::Slot;
|
use solana_sdk::clock::Slot;
|
||||||
use std::path::PathBuf;
|
use std::{
|
||||||
|
path::PathBuf,
|
||||||
|
sync::{Arc, RwLock},
|
||||||
|
};
|
||||||
|
|
||||||
/// Snapshot configuration and runtime information
|
/// Snapshot configuration and runtime information
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
|
@ -26,4 +29,9 @@ pub struct SnapshotConfig {
|
||||||
|
|
||||||
/// Maximum number of full snapshot archives to retain
|
/// Maximum number of full snapshot archives to retain
|
||||||
pub maximum_snapshots_to_retain: usize,
|
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>>>;
|
||||||
|
|
|
@ -49,7 +49,7 @@ use {
|
||||||
},
|
},
|
||||||
hardened_unpack::MAX_GENESIS_ARCHIVE_UNPACKED_SIZE,
|
hardened_unpack::MAX_GENESIS_ARCHIVE_UNPACKED_SIZE,
|
||||||
snapshot_archive_info::SnapshotArchiveInfoGetter,
|
snapshot_archive_info::SnapshotArchiveInfoGetter,
|
||||||
snapshot_config::SnapshotConfig,
|
snapshot_config::{LastFullSnapshotSlot, SnapshotConfig},
|
||||||
snapshot_utils::{
|
snapshot_utils::{
|
||||||
self, ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
self, ArchiveFormat, SnapshotVersion, DEFAULT_MAX_FULL_SNAPSHOT_ARCHIVES_TO_RETAIN,
|
||||||
},
|
},
|
||||||
|
@ -2621,6 +2621,7 @@ pub fn main() {
|
||||||
archive_format,
|
archive_format,
|
||||||
snapshot_version,
|
snapshot_version,
|
||||||
maximum_snapshots_to_retain,
|
maximum_snapshots_to_retain,
|
||||||
|
last_full_snapshot_slot: LastFullSnapshotSlot::default(),
|
||||||
});
|
});
|
||||||
|
|
||||||
validator_config.accounts_hash_interval_slots =
|
validator_config.accounts_hash_interval_slots =
|
||||||
|
|
Loading…
Reference in New Issue