Expand description
Memory-mapped typed slot storage with per-slot concurrency and epoch durability
§Example
use frozen_core::memmap::{MemMap, MemMapCfg};
use std::time::Duration;
let dir = tempfile::tempdir().unwrap();
let path = dir.path().join("memmap_demo.bin");
let cfg = MemMapCfg {
module_id: 1,
path,
version: 1,
initial_t: 512,
sync_interval: Some(Duration::from_millis(50)),
page_size: None,
};
let memmap = MemMap::<u64>::new(cfg).unwrap();
assert_eq!(memmap.length(), 512 * std::mem::size_of::<u64>());
let (ticket, _) = memmap.write(0, |v| *v = 0xDEAD_BEEF_CAFE_BABE).unwrap();
ticket.wait().unwrap();
assert!(ticket.is_durable());
assert_eq!(memmap.read(0, |v| *v).unwrap(), 0xDEAD_BEEF_CAFE_BABE);
assert!(memmap.delete().is_ok());Structs§
- MemMap
- Custom memory-mapped typed array storage with slot-level locking and epoch durability
- MemMap
Cfg - Configurations for
MemMap - MemMap
Transaction - Context for grouping multiple conditional writes into a single atomic operation
Enums§
- Page
Size - Strongly-typed virtual memory page size representing hardware MMU translation granules