pub struct LmdbParallelRawKeyScanner { /* private fields */ }Expand description
Ordered, bounded-memory raw-key scanner backed by concurrent LMDB cursors.
The scanner divides the SHA-256 keyspace into 4096 ordered 12-bit ranges. Every worker owns an independent read transaction with the same LMDB transaction ID, so all cursors observe one coherent snapshot. Ranges are prefetched through a bounded sliding window and are emitted only in lexicographic order. Values are never requested from LMDB.
Implementations§
Source§impl LmdbParallelRawKeyScanner
impl LmdbParallelRawKeyScanner
Sourcepub fn snapshot_transaction_id(&self) -> usize
pub fn snapshot_transaction_id(&self) -> usize
LMDB transaction ID shared by every worker cursor.
Sourcepub fn next_page(&mut self, limit: usize) -> Result<Vec<Hash>, StoreError>
pub fn next_page(&mut self, limit: usize) -> Result<Vec<Hash>, StoreError>
Return the next globally ordered page of exact raw blob hashes.
The final page may be shorter than limit; a subsequent call returns
an empty vector. limit bounds caller-visible allocation independently
of the internal range-prefetch window.
Trait Implementations§
Source§impl Drop for LmdbParallelRawKeyScanner
impl Drop for LmdbParallelRawKeyScanner
Auto Trait Implementations§
impl !RefUnwindSafe for LmdbParallelRawKeyScanner
impl !Sync for LmdbParallelRawKeyScanner
impl !UnwindSafe for LmdbParallelRawKeyScanner
impl Freeze for LmdbParallelRawKeyScanner
impl Send for LmdbParallelRawKeyScanner
impl Unpin for LmdbParallelRawKeyScanner
impl UnsafeUnpin for LmdbParallelRawKeyScanner
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