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,
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, 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>,