pub struct RoTxn<'e> { /* private fields */ }
Expand description
A read-only transaction.
§LMDB Limitations
It’s a must to keep read transactions short-lived.
Active Read transactions prevent the reuse of pages freed by newer write transactions, thus the database can grow quickly.
§OSX/Darwin Limitation
At least 10 transactions can be active at the same time in the same process, since only 10 POSIX semaphores can be active at the same time for a process. Threads are in the same process space.
If the process crashes in the POSIX semaphore locking section of the transaction, the semaphore will be kept locked.
Note: if your program already use POSIX semaphores, you will have less available for heed/LMDB!
You may increase the limit by editing it at your own risk: /Library/LaunchDaemons/sysctl.plist
Implementations§
Source§impl<'e> RoTxn<'e>
impl<'e> RoTxn<'e>
Sourcepub fn commit(self) -> Result<()>
pub fn commit(self) -> Result<()>
Commit a read transaction.
Synchronizing some Env
metadata with the global handle.
§LMDB
It’s mandatory in a multi-process setup to call RoTxn::commit
upon read-only database opening.
After the transaction opening, the database is dropped. The next transaction might return
Io(Os { code: 22, kind: InvalidInput, message: "Invalid argument" })
known as EINVAL
.
Trait Implementations§
Auto Trait Implementations§
impl<'e> Freeze for RoTxn<'e>
impl<'e> RefUnwindSafe for RoTxn<'e>
impl<'e> !Sync for RoTxn<'e>
impl<'e> Unpin for RoTxn<'e>
impl<'e> UnwindSafe for RoTxn<'e>
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
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes