photoncloud-monorepo/chainfire/crates/chainfire-storage/src/lib.rs

51 lines
1.5 KiB
Rust

//! RocksDB storage layer for Chainfire distributed KVS
//!
//! This crate provides:
//! - RocksDB-backed persistent storage
//! - Key-Value operations (Put, Get, Delete, Scan)
//! - Lease management for TTL-based key expiration
//! - Log storage for Raft
//! - State machine for Raft
//! - Snapshot management
pub mod kv_store;
pub mod lease_store;
pub mod log_storage;
pub mod snapshot;
pub mod state_machine;
pub mod store;
pub use kv_store::KvStore;
pub use lease_store::{LeaseExpirationWorker, LeaseStore};
pub use log_storage::{EntryPayload, LogEntry, LogId, LogState, LogStorage, Vote};
pub use snapshot::{Snapshot, SnapshotBuilder, SnapshotMeta};
pub use state_machine::StateMachine;
pub use store::RocksStore;
/// Column family names for RocksDB
pub mod cf {
/// Raft log entries
pub const LOGS: &str = "raft_logs";
/// Raft metadata (vote, term, etc.)
pub const META: &str = "raft_meta";
/// Key-value data
pub const KV: &str = "key_value";
/// Snapshot metadata
pub const SNAPSHOT: &str = "snapshot";
/// Lease data
pub const LEASES: &str = "leases";
}
/// Metadata keys
pub mod meta_keys {
/// Current term and vote
pub const VOTE: &[u8] = b"vote";
/// Last applied log ID
pub const LAST_APPLIED: &[u8] = b"last_applied";
/// Current membership
pub const MEMBERSHIP: &[u8] = b"membership";
/// Current revision
pub const REVISION: &[u8] = b"revision";
/// Last snapshot ID
pub const LAST_SNAPSHOT: &[u8] = b"last_snapshot";
}