Struct tikv::storage::txn::commands::CheckTxnStatus [−][src]
Check the status of a transaction. This is usually invoked by a transaction that meets
another transaction’s lock. If the primary lock is expired, it will rollback the primary
lock. If the primary lock exists but is not expired, it may update the transaction’s
min_commit_ts
. Returns a TxnStatus
to represent the status.
This is invoked on a transaction’s primary lock. The lock may be generated by either
AcquirePessimisticLock
or
Prewrite
.
Fields
ctx: Context
primary_key: Key
The primary key of the transaction.
lock_ts: TimeStamp
The lock’s ts, namely the transaction’s start_ts.
caller_start_ts: TimeStamp
The start_ts of the transaction that invokes this command.
current_ts: TimeStamp
The approximate current_ts when the command is invoked.
rollback_if_not_exist: bool
Specifies the behavior when neither commit/rollback record nor lock is found. If true, rollbacks that transaction; otherwise returns an error.
force_sync_commit: bool
resolving_pessimistic_lock: bool
Implementations
impl CheckTxnStatus
[src]
pub fn new(
primary_key: Key,
lock_ts: TimeStamp,
caller_start_ts: TimeStamp,
current_ts: TimeStamp,
rollback_if_not_exist: bool,
force_sync_commit: bool,
resolving_pessimistic_lock: bool,
ctx: Context
) -> TypedCommand<TxnStatus>
[src]
primary_key: Key,
lock_ts: TimeStamp,
caller_start_ts: TimeStamp,
current_ts: TimeStamp,
rollback_if_not_exist: bool,
force_sync_commit: bool,
resolving_pessimistic_lock: bool,
ctx: Context
) -> TypedCommand<TxnStatus>
Return a TypedCommand
that encapsulates the result of executing this command.
Trait Implementations
impl CommandExt for CheckTxnStatus
[src]
fn get_ctx(&self) -> &Context
[src]
fn get_ctx_mut(&mut self) -> &mut Context
[src]
fn tag(&self) -> CommandKind
[src]
fn incr_cmd_metric(&self)
[src]
fn ts(&self) -> TimeStamp
[src]
fn write_bytes(&self) -> usize
[src]
fn gen_lock(&self) -> Lock
[src]
fn readonly(&self) -> bool
[src]
fn is_sys_cmd(&self) -> bool
[src]
fn can_be_pipelined(&self) -> bool
[src]
impl Debug for CheckTxnStatus
[src]
impl Display for CheckTxnStatus
[src]
impl<S: Snapshot, L: LockManager> WriteCommand<S, L> for CheckTxnStatus
[src]
fn process_write(
self,
snapshot: S,
context: WriteContext<'_, L>
) -> Result<WriteResult>
[src]
self,
snapshot: S,
context: WriteContext<'_, L>
) -> Result<WriteResult>
checks whether a transaction has expired its primary lock’s TTL, rollback the
transaction if expired, or update the transaction’s min_commit_ts according to the metadata
in the primary lock.
When transaction T1 meets T2’s lock, it may invoke this on T2’s primary key. In this
situation, self.start_ts
is T2’s start_ts
, caller_start_ts
is T1’s start_ts
, and
the current_ts
is literally the timestamp when this function is invoked; it may not be
accurate.
Auto Trait Implementations
impl RefUnwindSafe for CheckTxnStatus
impl Send for CheckTxnStatus
impl Sync for CheckTxnStatus
impl Unpin for CheckTxnStatus
impl UnwindSafe for CheckTxnStatus
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<V, W> ConvertFrom<W> for V where
W: ConvertTo<V>,
[src]
W: ConvertTo<V>,
pub fn convert_from(ctx: &mut EvalContext, from: W) -> Result<V, Error>
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
[src]
pub const ALIGN: usize
[src]
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
[src]
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
[src]
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
[src]
pub unsafe fn drop(ptr: usize)
[src]
impl<T> Pointable for T
[src]
pub const ALIGN: usize
[src]
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
[src]
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
[src]
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
[src]
pub unsafe fn drop(ptr: usize)
[src]
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T> Sealed<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> SendSyncUnwindSafe for T where
T: Send + Sync + UnwindSafe + ?Sized,
[src]
T: Send + Sync + UnwindSafe + ?Sized,
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,