Skip to main content

photondb_engine/tree/
stats.rs

1use crate::util::Counter;
2
3#[derive(Default, Debug)]
4pub struct Stats {
5    pub cache_size: u64,
6    pub succeeded: OpStats,
7    pub conflicted: OpStats,
8}
9
10#[derive(Default, Debug)]
11pub struct OpStats {
12    pub num_gets: u64,
13    pub num_inserts: u64,
14    pub num_data_splits: u64,
15    pub num_data_consolidates: u64,
16    pub num_index_splits: u64,
17    pub num_index_consolidates: u64,
18}
19
20#[derive(Default)]
21pub struct AtomicStats {
22    pub succeeded: AtomicOpStats,
23    pub conflicted: AtomicOpStats,
24}
25
26#[derive(Default)]
27pub struct AtomicOpStats {
28    pub num_gets: Counter,
29    pub num_inserts: Counter,
30    pub num_data_splits: Counter,
31    pub num_data_consolidates: Counter,
32    pub num_index_splits: Counter,
33    pub num_index_consolidates: Counter,
34}
35
36impl AtomicOpStats {
37    pub fn snapshot(&self) -> OpStats {
38        OpStats {
39            num_gets: self.num_gets.get(),
40            num_inserts: self.num_inserts.get(),
41            num_data_splits: self.num_data_splits.get(),
42            num_data_consolidates: self.num_data_consolidates.get(),
43            num_index_splits: self.num_index_splits.get(),
44            num_index_consolidates: self.num_index_consolidates.get(),
45        }
46    }
47}