Struct fdb::database::FdbDatabase
source · pub struct FdbDatabase { /* private fields */ }Expand description
A mutable, lexicographically ordered mapping from binary keys to binary values.
FdbTransactions are used to manipulate data within a single
FdbDatabase - multiple concurrent FdbTransactions on a
FdbDatabase enforce ACID properties.
The simplest correct programs using FDB will make use of the
run and read methods. run will call commit after
the user code has been executed.
A handle to FDB database. All reads and writes to the database are transactional.
A FdbDatabase can be created using open_database function.
Implementations§
source§impl FdbDatabase
impl FdbDatabase
sourcepub fn create_transaction(&self) -> FdbResult<FdbTransaction>
pub fn create_transaction(&self) -> FdbResult<FdbTransaction>
Creates a FdbTransaction that operates on this
FdbDatabase.
sourcepub async fn get_boundary_keys(
&self,
begin: impl Into<Key>,
end: impl Into<Key>,
limit: i32,
read_version: i64
) -> FdbResult<Vec<Key>>
pub async fn get_boundary_keys( &self, begin: impl Into<Key>, end: impl Into<Key>, limit: i32, read_version: i64 ) -> FdbResult<Vec<Key>>
Returns an array of Keys k such that begin <= k < end
and k is located at the start of contiguous range stored on
a single server.
If limit is non-zero, only the first limit number of keys
will be returned. In large databases, the number of boundary
keys may be large. In these cases, a non-zero limit should
be used, along with multiple calls to get_boundary_keys.
If read_version is non-zero, the boundary keys as of
read_version will be returned.
This method is not transactional.
sourcepub fn open_tenant(
&self,
tenant_name: impl Into<Tenant>
) -> FdbResult<FdbTenant>
pub fn open_tenant( &self, tenant_name: impl Into<Tenant> ) -> FdbResult<FdbTenant>
Opens an existing tenant to be used for running transactions.
Note: Opening a tenant does not check its existence in the cluster.
sourcepub async fn run<T, F, Fut>(&self, f: F) -> FdbResult<T>where
F: FnMut(FdbTransaction) -> Fut,
Fut: Future<Output = FdbResult<T>>,
pub async fn run<T, F, Fut>(&self, f: F) -> FdbResult<T>where F: FnMut(FdbTransaction) -> Fut, Fut: Future<Output = FdbResult<T>>,
Runs a closure in the context that takes a FdbTransaction.
Note
The closure FnMut: FnMut(FdbTransaction) -> Fut will run
multiple times (retry) when certain errors are
encountered. Therefore the closure should be prepared to be
called more than once. This consideration means that the
closure should use caution when modifying state.
sourcepub async fn read<T, F, Fut>(&self, f: F) -> FdbResult<T>where
F: FnMut(FdbReadTransaction) -> Fut,
Fut: Future<Output = FdbResult<T>>,
pub async fn read<T, F, Fut>(&self, f: F) -> FdbResult<T>where F: FnMut(FdbReadTransaction) -> Fut, Fut: Future<Output = FdbResult<T>>,
Runs a closure in the context that takes a
FdbReadTransaction.
Note
The closure F: FnMut(FdbReadTransaction) -> Fut will run
multiple times (retry) when certain errors are
encountered. Therefore the closure should be prepared to be
called more than once. This consideration means that the
closure should use caution when modifying state.
sourcepub fn set_option(&self, option: DatabaseOption) -> FdbResult<()>
pub fn set_option(&self, option: DatabaseOption) -> FdbResult<()>
Set options on a FdbDatabase.
Trait Implementations§
source§impl Clone for FdbDatabase
impl Clone for FdbDatabase
source§fn clone(&self) -> FdbDatabase
fn clone(&self) -> FdbDatabase
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more