pub struct AtomicStore {
file_path: PathBuf,
file_pattern: String,
file_counter: u32,
last_counter: Option<u32>,
resources: HashMap<String, Arc<RwLock<VersionSyncHandle>>>,
commit_timeout: Duration,
retained_archives: Option<u32>,
}
Expand description
The central index of an atomic version of truth across multiple persisted data structures; Guarantees that all managed resources can be loaded in a consistent state across an entire logical entity.
Fields§
§file_path: PathBuf
§file_pattern: String
§file_counter: u32
§last_counter: Option<u32>
§resources: HashMap<String, Arc<RwLock<VersionSyncHandle>>>
§commit_timeout: Duration
§retained_archives: Option<u32>
Implementations§
Source§impl AtomicStore
impl AtomicStore
pub fn open(load_info: AtomicStoreLoader) -> Result<AtomicStore>
Sourcepub fn set_commit_timeout(&mut self, timeout: Duration)
pub fn set_commit_timeout(&mut self, timeout: Duration)
Set the commit timeout. By default, AtomicStore
will wait 100 milliseconds for all logs to be committed.
Sourcepub fn commit_version(&mut self) -> Result<()>
pub fn commit_version(&mut self) -> Result<()>
Commit the version. Note that all logs and stores must call .commit_version()
or .skip_version()
before this function is called.
This will timeout after 100 milliseconds (configurable with set_commit_timeout
). If you want to disable this timeout, set the ATOMIC_STORE_NO_TIMEOUT
environment variable before calling AtomicStore::open
.
Auto Trait Implementations§
impl Freeze for AtomicStore
impl RefUnwindSafe for AtomicStore
impl Send for AtomicStore
impl Sync for AtomicStore
impl Unpin for AtomicStore
impl UnwindSafe for AtomicStore
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more