Struct tikv::storage::txn::commands::prewrite::Prewriter[][src]

struct Prewriter<K: PrewriteKind> {
    kind: K,
    mutations: Vec<K::Mutation>,
    primary: Vec<u8>,
    start_ts: TimeStamp,
    lock_ttl: u64,
    txn_size: u64,
    min_commit_ts: TimeStamp,
    max_commit_ts: TimeStamp,
    secondary_keys: Option<Vec<Vec<u8>>>,
    old_values: OldValues,
    try_one_pc: bool,
    ctx: Context,
}

Handles both kinds of prewrite (K statically indicates either optimistic or pessimistic).

Fields

kind: Kmutations: Vec<K::Mutation>primary: Vec<u8>start_ts: TimeStamplock_ttl: u64txn_size: u64min_commit_ts: TimeStampmax_commit_ts: TimeStampsecondary_keys: Option<Vec<Vec<u8>>>old_values: OldValuestry_one_pc: boolctx: Context

Implementations

impl<K: PrewriteKind> Prewriter<K>[src]

fn process_write(
    self,
    snapshot: impl Snapshot,
    context: WriteContext<'_, impl LockManager>
) -> Result<WriteResult>
[src]

Entry point for handling a prewrite by Prewriter.

fn check_max_ts_synced(&self, snapshot: &impl Snapshot) -> Result<()>[src]

fn prewrite(
    &mut self,
    txn: &mut MvccTxn,
    reader: &mut SnapshotReader<impl Snapshot>,
    extra_op: ExtraOp
) -> Result<(Vec<Result<(), StorageError>>, TimeStamp)>
[src]

The core part of the prewrite action. In the abstract, this method iterates over the mutations in the prewrite and prewrites each one. It keeps track of any locks encountered and (if it’s an async commit transaction) the min_commit_ts, these are returned by the method.

fn write_result(
    self,
    locks: Vec<Result<(), StorageError>>,
    txn: MvccTxn,
    final_min_commit_ts: TimeStamp,
    rows: usize,
    async_apply_prewrite: bool,
    lock_manager: &impl LockManager
) -> WriteResult
[src]

Prepare a WriteResult object from the results of executing the prewrite.

Auto Trait Implementations

impl<K> RefUnwindSafe for Prewriter<K> where
    K: RefUnwindSafe,
    <K as PrewriteKind>::Mutation: RefUnwindSafe

impl<K> Send for Prewriter<K> where
    K: Send,
    <K as PrewriteKind>::Mutation: Send

impl<K> Sync for Prewriter<K> where
    K: Sync,
    <K as PrewriteKind>::Mutation: Sync

impl<K> Unpin for Prewriter<K> where
    K: Unpin,
    <K as PrewriteKind>::Mutation: Unpin

impl<K> UnwindSafe for Prewriter<K> where
    K: UnwindSafe,
    <K as PrewriteKind>::Mutation: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<V, W> ConvertFrom<W> for V where
    W: ConvertTo<V>, 
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> Sealed<T> for T where
    T: ?Sized
[src]

impl<T> SendSyncUnwindSafe for T where
    T: Send + Sync + UnwindSafe + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]