Struct tikv::storage::mvcc::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,
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, 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>,