Snapshot and blockchain stability improvements (#2843)
* allow taking snapshot from just-restored database without error * make creation informant less spammy * Ancestry iterator failure-resilient * make uncle hash searching resilient to incomplete chain * deduce pre-chunk info from last written block's details
This commit is contained in:
committed by
Gav Wood
parent
1a5bae8ef1
commit
bc81ae0407
@@ -45,6 +45,14 @@ pub struct Informant {
|
||||
skipped: AtomicUsize,
|
||||
}
|
||||
|
||||
/// Format byte counts to standard denominations.
|
||||
pub fn format_bytes(b: usize) -> String {
|
||||
match binary_prefix(b as f64) {
|
||||
Standalone(bytes) => format!("{} bytes", bytes),
|
||||
Prefixed(prefix, n) => format!("{:.0} {}B", n, prefix),
|
||||
}
|
||||
}
|
||||
|
||||
/// Something that can be converted to milliseconds.
|
||||
pub trait MillisecondDuration {
|
||||
/// Get the value in milliseconds.
|
||||
@@ -75,13 +83,6 @@ impl Informant {
|
||||
}
|
||||
}
|
||||
|
||||
fn format_bytes(b: usize) -> String {
|
||||
match binary_prefix(b as f64) {
|
||||
Standalone(bytes) => format!("{} bytes", bytes),
|
||||
Prefixed(prefix, n) => format!("{:.0} {}B", n, prefix),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#[cfg_attr(feature="dev", allow(match_bool))]
|
||||
pub fn tick(&self) {
|
||||
@@ -156,11 +157,11 @@ impl Informant {
|
||||
_ => String::new(),
|
||||
},
|
||||
format!("{} db {} chain {} queue{}",
|
||||
paint(Blue.bold(), format!("{:>8}", Informant::format_bytes(report.state_db_mem))),
|
||||
paint(Blue.bold(), format!("{:>8}", Informant::format_bytes(cache_info.total()))),
|
||||
paint(Blue.bold(), format!("{:>8}", Informant::format_bytes(queue_info.mem_used))),
|
||||
paint(Blue.bold(), format!("{:>8}", format_bytes(report.state_db_mem))),
|
||||
paint(Blue.bold(), format!("{:>8}", format_bytes(cache_info.total()))),
|
||||
paint(Blue.bold(), format!("{:>8}", format_bytes(queue_info.mem_used))),
|
||||
match sync_status {
|
||||
Some(ref sync_info) => format!(" {} sync", paint(Blue.bold(), format!("{:>8}", Informant::format_bytes(sync_info.mem_used)))),
|
||||
Some(ref sync_info) => format!(" {} sync", paint(Blue.bold(), format!("{:>8}", format_bytes(sync_info.mem_used)))),
|
||||
_ => String::new(),
|
||||
}
|
||||
)
|
||||
|
||||
@@ -232,9 +232,8 @@ impl SnapshotCommand {
|
||||
let cur_size = p.size();
|
||||
if cur_size != last_size {
|
||||
last_size = cur_size;
|
||||
info!("Snapshot: {} accounts {} blocks {} bytes", p.accounts(), p.blocks(), p.size());
|
||||
} else {
|
||||
info!("Snapshot: No progress since last update.");
|
||||
let bytes = ::informant::format_bytes(p.size());
|
||||
info!("Snapshot: {} accounts {} blocks {}", p.accounts(), p.blocks(), bytes);
|
||||
}
|
||||
|
||||
::std::thread::sleep(Duration::from_secs(5));
|
||||
|
||||
Reference in New Issue
Block a user