pub struct ReadOnlyPoolStore { /* private fields */ }Expand description
Strictly read-only view of an existing PoolStore catalog and its members.
Unlike super::PoolStore::open, this constructor never creates a path,
opens a write transaction, repairs pending records, records temperature
samples, or starts a worker. It is intended for live-data verification.
LMDB can still update reader bookkeeping in lock.mdb; data.mdb remains
read-only. On Windows, catalog growth requires reopening the reader after
a MapResized error because its mapping covers the file size at open.
Implementations§
Source§impl ReadOnlyPoolStore
impl ReadOnlyPoolStore
pub fn open<P: AsRef<Path>>(path: P) -> Result<Self, StoreError>
Sourcepub fn open_controlled<P: AsRef<Path>>(
path: P,
config: PoolStoreConfig,
) -> Result<Self, StoreError>
pub fn open_controlled<P: AsRef<Path>>( path: P, config: PoolStoreConfig, ) -> Result<Self, StoreError>
Open an exact, read-only Pool authority captured by a controller.
A controlled open requires a pinned catalog LMDB identity, the exact manifest SHA-256, one exact runtime binding for every manifest member, and disabled temperature tracking. Member readers use only those runtime paths and pinned LMDB identities.
Sourcepub fn manifest_snapshot(
&self,
) -> Result<ReadOnlyPoolManifestSnapshot, StoreError>
pub fn manifest_snapshot( &self, ) -> Result<ReadOnlyPoolManifestSnapshot, StoreError>
Return the exact manifest snapshot captured by this reader.
This first proves that the live manifest still matches the opened bytes, so callers cannot accidentally pin a stale topology.
Sourcepub fn blob_catalog_locations(
&self,
hashes: &[Hash],
) -> Result<Vec<PoolCatalogLocation>, StoreError>
pub fn blob_catalog_locations( &self, hashes: &[Hash], ) -> Result<Vec<PoolCatalogLocation>, StoreError>
Return exact catalog state for many hashes in one read transaction.
Pending and Moving are deliberately preserved so crash recovery
cannot mistake physical bytes for committed catalog residency.
Sourcepub fn validate_committed_catalog(
&self,
) -> Result<ReadOnlyPoolCatalogAudit, StoreError>
pub fn validate_committed_catalog( &self, ) -> Result<ReadOnlyPoolCatalogAudit, StoreError>
Prove that the entire catalog contains only committed locations.
Terminal verification must not silently read through an interrupted pending write or member move, even when one of its copies happens to contain valid bytes.
Sourcepub fn require_durable_external_blob_writes(&self) -> Result<(), StoreError>
pub fn require_durable_external_blob_writes(&self) -> Result<(), StoreError>
Require every member that stores external blobs to fsync those files before committing its catalog location. LMDB environment sync alone cannot make an external file durable when this manifest flag is false.