heed

Struct RoTxn

Source
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>

Source

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§

Source§

impl Drop for RoTxn<'_>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl Send for RoTxn<'_>

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

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