Struct lmdb::RoTransaction
[−]
[src]
pub struct RoTransaction<'env> { /* fields omitted */ }
An LMDB read-only transaction.
Methods
impl<'env> RoTransaction<'env>
[src]
fn reset(self) -> InactiveTransaction<'env>
Resets the read-only transaction.
Abort the transaction like Transaction::abort
, but keep the
transaction handle. InactiveTransaction::renew
may reuse the handle.
This saves allocation overhead if the process will start a new read-only
transaction soon, and also locking overhead if
EnvironmentFlags::NO_TLS
is in use. The reader table lock is released,
but the table slot stays tied to its thread or transaction. Reader locks
generally don't interfere with writers, but they keep old versions of
database pages allocated. Thus they prevent the old pages from being
reused when writers commit new data, and so under heavy load the
database size may grow much more rapidly than otherwise.
Trait Implementations
impl<'env> Debug for RoTransaction<'env>
[src]
impl<'env> Drop for RoTransaction<'env>
[src]
impl<'env> Transaction for RoTransaction<'env>
[src]
fn txn(&self) -> *mut MDB_txn
Returns a raw pointer to the underlying LMDB transaction. Read more
fn commit(self) -> Result<()>
Commits the transaction. Read more
fn abort(self)
Aborts the transaction. Read more
unsafe fn open_db(&self, name: Option<&str>) -> Result<Database>
Opens a database in the transaction. Read more
fn get<'txn, K>(&'txn self, database: Database, key: &K) -> Result<&'txn [u8]> where
K: AsRef<[u8]>,
K: AsRef<[u8]>,
Gets an item from a database. Read more
fn open_ro_cursor<'txn>(&'txn self, db: Database) -> Result<RoCursor<'txn>>
Open a new read-only cursor on the given database.
fn db_flags(&self, db: Database) -> Result<DatabaseFlags>
Gets the option flags for the given database in the transaction.