Struct tikv::storage::txn::commands::prewrite::Prewriter [−][src]
Handles both kinds of prewrite (K statically indicates either optimistic or pessimistic).
Fields
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
Implementations
impl<K: PrewriteKind> Prewriter<K>
[src][−]
fn process_write(
self,
snapshot: impl Snapshot,
context: WriteContext<'_, impl LockManager>
) -> Result<WriteResult>
[src][−]
self,
snapshot: impl Snapshot,
context: WriteContext<'_, impl LockManager>
) -> Result<WriteResult>
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][−]
&mut self,
txn: &mut MvccTxn,
reader: &mut SnapshotReader<impl Snapshot>,
extra_op: ExtraOp
) -> Result<(Vec<Result<(), StorageError>>, TimeStamp)>
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][−]
self,
locks: Vec<Result<(), StorageError>>,
txn: MvccTxn,
final_min_commit_ts: TimeStamp,
rows: usize,
async_apply_prewrite: bool,
lock_manager: &impl LockManager
) -> WriteResult
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,
K: RefUnwindSafe,
<K as PrewriteKind>::Mutation: RefUnwindSafe,
impl<K> Send for Prewriter<K> where
K: Send,
<K as PrewriteKind>::Mutation: Send,
K: Send,
<K as PrewriteKind>::Mutation: Send,
impl<K> Sync for Prewriter<K> where
K: Sync,
<K as PrewriteKind>::Mutation: Sync,
K: Sync,
<K as PrewriteKind>::Mutation: Sync,
impl<K> Unpin for Prewriter<K> where
K: Unpin,
<K as PrewriteKind>::Mutation: Unpin,
K: Unpin,
<K as PrewriteKind>::Mutation: Unpin,
impl<K> UnwindSafe for Prewriter<K> where
K: UnwindSafe,
<K as PrewriteKind>::Mutation: UnwindSafe,
K: UnwindSafe,
<K as PrewriteKind>::Mutation: UnwindSafe,
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,
impl<V, W> ConvertFrom<W> for V where
W: ConvertTo<V>,
[src][+]
W: ConvertTo<V>,
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][+]
U: From<T>,
impl<T> Pointable for T
[src][+]
impl<T> Pointable for T
[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, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src][+]
V: MultiLane<T>,