Struct tikv::storage::mvcc::txn::MvccTxn [−][src]
An abstraction of a locally-transactional MVCC key-value store
Fields
start_ts: TimeStamp
write_size: usize
modifies: Vec<Modify>
locks_for_1pc: Vec<(Key, Lock, bool)>
concurrency_manager: ConcurrencyManager
guards: Vec<KeyHandleGuard>
Implementations
impl MvccTxn
[src]
pub fn new(
start_ts: TimeStamp,
concurrency_manager: ConcurrencyManager
) -> MvccTxn
[src]
start_ts: TimeStamp,
concurrency_manager: ConcurrencyManager
) -> MvccTxn
pub fn into_modifies(self) -> Vec<Modify>
[src]
pub fn take_guards(&mut self) -> Vec<KeyHandleGuard>
[src]
pub fn write_size(&self) -> usize
[src]
pub(crate) fn put_lock(&mut self, key: Key, lock: &Lock)
[src]
pub(crate) fn put_locks_for_1pc(
&mut self,
key: Key,
lock: Lock,
remove_pessimstic_lock: bool
)
[src]
&mut self,
key: Key,
lock: Lock,
remove_pessimstic_lock: bool
)
pub(crate) fn unlock_key(
&mut self,
key: Key,
pessimistic: bool
) -> Option<ReleasedLock>
[src]
&mut self,
key: Key,
pessimistic: bool
) -> Option<ReleasedLock>
pub(crate) fn put_value(&mut self, key: Key, ts: TimeStamp, value: Value)
[src]
pub(crate) fn delete_value(&mut self, key: Key, ts: TimeStamp)
[src]
pub(crate) fn put_write(&mut self, key: Key, ts: TimeStamp, value: Value)
[src]
pub(crate) fn delete_write(&mut self, key: Key, ts: TimeStamp)
[src]
pub(crate) fn mark_rollback_on_mismatching_lock(
&mut self,
key: &Key,
lock: Lock,
is_protected: bool
)
[src]
&mut self,
key: &Key,
lock: Lock,
is_protected: bool
)
Add the timestamp of the current rollback operation to another transaction’s lock if necessary.
When putting rollback record on a key that’s locked by another transaction, the second transaction may overwrite the current rollback record when it’s committed. Sometimes it may break consistency. To solve the problem, add the timestamp of the current rollback to the lock. So when the lock is committed, it can check if it will overwrite a rollback record by checking the information in the lock.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for MvccTxn
impl Send for MvccTxn
impl Sync for MvccTxn
impl Unpin for MvccTxn
impl !UnwindSafe for MvccTxn
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, 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>,