mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-15 10:21:05 +00:00
Limit stagnant checks to a certain amount of entries (#5742)
* Limit number of elements loaded from the stagnant key This will likely be required if we enable stagnant prunning as currently database has way too many entries to be prunned in a single iteration * Fmt run * Slightly improve logging * Some more debug nits * Fmt pass
This commit is contained in:
@@ -50,6 +50,8 @@ type Timestamp = u64;
|
||||
// If a block isn't approved in 120 seconds, nodes will abandon it
|
||||
// and begin building on another chain.
|
||||
const STAGNANT_TIMEOUT: Timestamp = 120;
|
||||
// Maximum number of stagnant entries cleaned during one `STAGNANT_TIMEOUT` iteration
|
||||
const MAX_STAGNANT_ENTRIES: usize = 1000;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
enum Approval {
|
||||
@@ -435,7 +437,7 @@ where
|
||||
}
|
||||
}
|
||||
_ = stagnant_check_stream.next().fuse() => {
|
||||
detect_stagnant(backend, clock.timestamp_now())?;
|
||||
detect_stagnant(backend, clock.timestamp_now(), MAX_STAGNANT_ENTRIES)?;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -637,9 +639,13 @@ fn handle_approved_block(backend: &mut impl Backend, approved_block: Hash) -> Re
|
||||
backend.write(ops)
|
||||
}
|
||||
|
||||
fn detect_stagnant(backend: &mut impl Backend, now: Timestamp) -> Result<(), Error> {
|
||||
fn detect_stagnant(
|
||||
backend: &mut impl Backend,
|
||||
now: Timestamp,
|
||||
max_elements: usize,
|
||||
) -> Result<(), Error> {
|
||||
let ops = {
|
||||
let overlay = tree::detect_stagnant(&*backend, now)?;
|
||||
let overlay = tree::detect_stagnant(&*backend, now, max_elements)?;
|
||||
|
||||
overlay.into_write_ops()
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user