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

pub struct Prewrite {
    pub ctx: Context,
    pub mutations: Vec<Mutation>,
    pub primary: Vec<u8>,
    pub start_ts: TimeStamp,
    pub lock_ttl: u64,
    pub skip_constraint_check: bool,
    pub txn_size: u64,
    pub min_commit_ts: TimeStamp,
    pub max_commit_ts: TimeStamp,
    pub secondary_keys: Option<Vec<Vec<u8>>>,
    pub try_one_pc: bool,
}

The prewrite phase of a transaction. The first phase of 2PC.

This prepares the system to commit the transaction. Later a Commit or a Rollback should follow.

Fields

ctx: Contextmutations: Vec<Mutation>

The set of mutations to apply.

primary: Vec<u8>

The primary lock. Secondary locks (from mutations) will refer to the primary lock.

start_ts: TimeStamp

The transaction timestamp.

lock_ttl: u64skip_constraint_check: booltxn_size: u64

How many keys this transaction involved.

min_commit_ts: TimeStampmax_commit_ts: TimeStamp

Limits the maximum value of commit ts of async commit and 1PC, which can be used to avoid inconsistency with schema change.

secondary_keys: Option<Vec<Vec<u8>>>

All secondary keys in the whole transaction (i.e., as sent to all nodes, not only this node). Only present if using async commit.

try_one_pc: bool

When the transaction involves only one region, it’s possible to commit the transaction directly with 1PC protocol.

Implementations

impl Prewrite[src]

pub fn new(
    mutations: Vec<Mutation>,
    primary: Vec<u8>,
    start_ts: TimeStamp,
    lock_ttl: u64,
    skip_constraint_check: bool,
    txn_size: u64,
    min_commit_ts: TimeStamp,
    max_commit_ts: TimeStamp,
    secondary_keys: Option<Vec<Vec<u8>>>,
    try_one_pc: bool,
    ctx: Context
) -> TypedCommand<PrewriteResult>
[src]

Return a TypedCommand that encapsulates the result of executing this command.

impl Prewrite[src]

pub fn with_context(
    mutations: Vec<Mutation>,
    primary: Vec<u8>,
    start_ts: TimeStamp,
    ctx: Context
) -> TypedCommand<PrewriteResult>
[src]

fn into_prewriter(self) -> Prewriter<Optimistic>[src]

Trait Implementations

impl CommandExt for Prewrite[src]

impl Debug for Prewrite[src]

impl Display for Prewrite[src]

impl<S: Snapshot, L: LockManager> WriteCommand<S, L> for Prewrite[src]

Auto Trait Implementations

impl RefUnwindSafe for Prewrite

impl Send for Prewrite

impl Sync for Prewrite

impl Unpin for Prewrite

impl UnwindSafe for Prewrite

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> ToString for T where
    T: Display + ?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]