pub struct EmbeddedTransactor { /* private fields */ }Expand description
A serialized, in-process transactor. The log append is the commit point.
Implementations§
Source§impl EmbeddedTransactor
impl EmbeddedTransactor
Sourcepub fn recover(
schema: Schema,
log: Arc<dyn TransactionLog>,
) -> Result<Self, TransactError>
pub fn recover( schema: Schema, log: Arc<dyn TransactionLog>, ) -> Result<Self, TransactError>
Recovers a transactor by replaying the durable log exactly once.
§Errors
Returns an error when the durable log cannot be replayed.
Sourcepub fn recover_from(
base: Db,
log: Arc<dyn TransactionLog>,
) -> Result<Self, TransactError>
pub fn recover_from( base: Db, log: Arc<dyn TransactionLog>, ) -> Result<Self, TransactError>
Recovers from an empty base database value (schema plus naming) by replaying the durable log exactly once.
§Errors
Returns an error when the durable log cannot be replayed.
Sourcepub fn subscribe(&self) -> Receiver<TxReport>
pub fn subscribe(&self) -> Receiver<TxReport>
Subscribes to reports for transactions committed after this call.
Sourcepub fn transact(
&self,
items: impl IntoIterator<Item = TxItem>,
) -> Result<TxReport, TransactError>
pub fn transact( &self, items: impl IntoIterator<Item = TxItem>, ) -> Result<TxReport, TransactError>
Validates, durably appends, applies, and reports a transaction.
§Errors
Returns an error for rejected transaction data, clock failure, or when the durable append fails. No report is sent on error.
Sourcepub fn update_naming(&self, idents: Idents, interner: KeywordInterner)
pub fn update_naming(&self, idents: Idents, interner: KeywordInterner)
Replaces the ident/keyword naming attached to the current database value (used when the boundary interns new keywords).
Sourcepub fn publish_indexes(
&self,
store: &(impl BlobStore + RootStore),
root_name: &str,
lease_version: u64,
) -> Result<DbRoot, TransactError>
pub fn publish_indexes( &self, store: &(impl BlobStore + RootStore), root_name: &str, lease_version: u64, ) -> Result<DbRoot, TransactError>
Builds a consistent snapshot of all four indexes and publishes their blob ids.
Blobs are uploaded before the root CAS. Transactions may continue while the immutable snapshot is encoded; a later run indexes any remaining log tail.
Publication is fenced by lease_version and monotone in
index_basis_t: a root already published under a newer lease version
deposes this writer (TransactError::Deposed); a root at an equal
or newer basis (or one that wins a concurrent CAS race) leaves this
snapshot’s blobs for garbage collection. The freshly built root is
returned when it, or a newer basis, is installed.
§Errors
Returns an error if a blob upload, root read, or fenced publication fails.
Auto Trait Implementations§
impl !Freeze for EmbeddedTransactor
impl !RefUnwindSafe for EmbeddedTransactor
impl !UnwindSafe for EmbeddedTransactor
impl Send for EmbeddedTransactor
impl Sync for EmbeddedTransactor
impl Unpin for EmbeddedTransactor
impl UnsafeUnpin for EmbeddedTransactor
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request