photondb-engine 0.0.1

The PhotonDB storage engine.
Documentation
use crate::util::Counter;

#[derive(Default, Debug)]
pub struct Stats {
    pub cache_size: u64,
    pub succeeded: OpStats,
    pub conflicted: OpStats,
}

#[derive(Default, Debug)]
pub struct OpStats {
    pub num_gets: u64,
    pub num_inserts: u64,
    pub num_data_splits: u64,
    pub num_data_consolidates: u64,
    pub num_index_splits: u64,
    pub num_index_consolidates: u64,
}

#[derive(Default)]
pub struct AtomicStats {
    pub succeeded: AtomicOpStats,
    pub conflicted: AtomicOpStats,
}

#[derive(Default)]
pub struct AtomicOpStats {
    pub num_gets: Counter,
    pub num_inserts: Counter,
    pub num_data_splits: Counter,
    pub num_data_consolidates: Counter,
    pub num_index_splits: Counter,
    pub num_index_consolidates: Counter,
}

impl AtomicOpStats {
    pub fn snapshot(&self) -> OpStats {
        OpStats {
            num_gets: self.num_gets.get(),
            num_inserts: self.num_inserts.get(),
            num_data_splits: self.num_data_splits.get(),
            num_data_consolidates: self.num_data_consolidates.get(),
            num_index_splits: self.num_index_splits.get(),
            num_index_consolidates: self.num_index_consolidates.get(),
        }
    }
}