AcctIdx: add age_interval_ms() to remove constant use (#20264)
This commit is contained in:
parent
e7bd1e9065
commit
e50a26e6cf
|
@ -12,7 +12,7 @@ use std::sync::{Arc, Mutex};
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
pub type Age = u8;
|
pub type Age = u8;
|
||||||
|
|
||||||
pub const AGE_MS: u64 = SLOT_MS; // match one age per slot time
|
const AGE_MS: u64 = SLOT_MS; // match one age per slot time
|
||||||
|
|
||||||
pub struct BucketMapHolder<T: IndexValue> {
|
pub struct BucketMapHolder<T: IndexValue> {
|
||||||
pub disk: Option<BucketMap<SlotT<T>>>,
|
pub disk: Option<BucketMap<SlotT<T>>>,
|
||||||
|
@ -67,7 +67,7 @@ impl<T: IndexValue> BucketMapHolder<T> {
|
||||||
|
|
||||||
fn has_age_interval_elapsed(&self) -> bool {
|
fn has_age_interval_elapsed(&self) -> bool {
|
||||||
// note that when this returns true, state of age_timer is modified
|
// note that when this returns true, state of age_timer is modified
|
||||||
self.age_timer.should_update(AGE_MS)
|
self.age_timer.should_update(self.age_interval_ms())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// used by bg processes to determine # active threads and how aggressively to flush
|
/// used by bg processes to determine # active threads and how aggressively to flush
|
||||||
|
@ -153,6 +153,12 @@ impl<T: IndexValue> BucketMapHolder<T> {
|
||||||
result
|
result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// prepare for this to be dynamic if necessary
|
||||||
|
/// For example, maybe startup has a shorter age interval.
|
||||||
|
fn age_interval_ms(&self) -> u64 {
|
||||||
|
AGE_MS
|
||||||
|
}
|
||||||
|
|
||||||
// intended to execute in a bg thread
|
// intended to execute in a bg thread
|
||||||
pub fn background(&self, exit: Arc<AtomicBool>, in_mem: Vec<Arc<InMemAccountsIndex<T>>>) {
|
pub fn background(&self, exit: Arc<AtomicBool>, in_mem: Vec<Arc<InMemAccountsIndex<T>>>) {
|
||||||
let bins = in_mem.len();
|
let bins = in_mem.len();
|
||||||
|
@ -164,7 +170,8 @@ impl<T: IndexValue> BucketMapHolder<T> {
|
||||||
));
|
));
|
||||||
} else if self.all_buckets_flushed_at_current_age() {
|
} else if self.all_buckets_flushed_at_current_age() {
|
||||||
let wait = std::cmp::min(
|
let wait = std::cmp::min(
|
||||||
self.age_timer.remaining_until_next_interval(AGE_MS),
|
self.age_timer
|
||||||
|
.remaining_until_next_interval(self.age_interval_ms()),
|
||||||
self.stats.remaining_until_next_interval(),
|
self.stats.remaining_until_next_interval(),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue