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

pub struct PrewritePessimistic {
    pub ctx: Context,
    pub mutations: Vec<(Mutation, bool)>,
    pub primary: Vec<u8>,
    pub start_ts: TimeStamp,
    pub lock_ttl: u64,
    pub for_update_ts: TimeStamp,
    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 using pessimistic locking. 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, bool)>

The set of mutations to apply; the bool = is pessimistic lock.

primary: Vec<u8>

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

start_ts: TimeStamp

The transaction timestamp.

lock_ttl: u64for_update_ts: TimeStamptxn_size: u64

How many keys this transaction involved.

min_commit_ts: TimeStampmax_commit_ts: TimeStamp

Limits the maximum value of commit ts of 1PC and async commit, 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 PrewritePessimistic[src]

pub fn new(
    mutations: Vec<(Mutation, bool)>,
    primary: Vec<u8>,
    start_ts: TimeStamp,
    lock_ttl: u64,
    for_update_ts: TimeStamp,
    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 PrewritePessimistic[src]

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

Trait Implementations

impl CommandExt for PrewritePessimistic[src]

impl Debug for PrewritePessimistic[src]

impl Display for PrewritePessimistic[src]

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

Auto Trait Implementations

impl RefUnwindSafe for PrewritePessimistic

impl Send for PrewritePessimistic

impl Sync for PrewritePessimistic

impl Unpin for PrewritePessimistic

impl UnwindSafe for PrewritePessimistic

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]