Struct lmdb::Environment

source ·
pub struct Environment { /* private fields */ }
Expand description

An LMDB environment.

An environment supports multiple databases, all residing in the same shared-memory map.

Implementations§

Creates a new builder for specifying options for opening an LMDB environment.

Returns a raw pointer to the underlying LMDB environment.

The caller must ensure that the pointer is not dereferenced after the lifetime of the environment.

Opens a handle to an LMDB database.

If name is None, then the returned handle will be for the default database.

If name is not None, then the returned handle will be for a named database. In this case the environment must be configured to allow named databases through EnvironmentBuilder::set_max_dbs.

The returned database handle may be shared among any transaction in the environment.

This function will fail with Error::BadRslot if called by a thread which has an ongoing transaction.

The database name may not contain the null character.

Opens a handle to an LMDB database, creating the database if necessary.

If the database is already created, the given option flags will be added to it.

If name is None, then the returned handle will be for the default database.

If name is not None, then the returned handle will be for a named database. In this case the environment must be configured to allow named databases through EnvironmentBuilder::set_max_dbs.

The returned database handle may be shared among any transaction in the environment.

This function will fail with Error::BadRslot if called by a thread with an open transaction.

Retrieves the set of flags which the database is opened with.

The database must belong to to this environment.

Create a read-only transaction for use with the environment.

Create a read-write transaction for use with the environment. This method will block while there are any other read-write transactions open on the environment.

Flush data buffers to disk.

Data is always written to disk when Transaction::commit is called, but the operating system may keep it buffered. LMDB always flushes the OS buffers upon commit as well, unless the environment was opened with MDB_NOSYNC or in part MDB_NOMETASYNC.

Closes the database handle. Normally unnecessary.

Closing a database handle is not necessary, but lets Transaction::open_database reuse the handle value. Usually it’s better to set a bigger EnvironmentBuilder::set_max_dbs, unless that value would be large.

Safety

This call is not mutex protected. Databases should only be closed by a single thread, and only if no other threads are going to reference the database handle or one of its cursors any further. Do not close a handle if an existing transaction has modified its database. Doing so can cause misbehavior from database corruption to errors like Error::BadValSize (since the DB name is gone).

Retrieves statistics about this environment.

Trait Implementations§

Formats the value using the given formatter. Read more
Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.