libfoedus-core
FOEDUS Core Library
|
Transaction ID, a 128-bit data to manage record versions and provide locking mechanism. More...
Transaction ID, a 128-bit data to manage record versions and provide locking mechanism.
This object contains a quite more information compared to SILO [TU13]'s TID. We spend more bits on ordinals and epochs for larger environments, and also employ MCS-locking to be more scalable. Thus, now it's 128-bits. It's not a negligible size, but still compact. Also, 16-bytes sometimes reduce false cacheline sharing (well, then you might ask making it 64 bytes... but that's too much).
Definition at line 1107 of file xct_id.hpp.
#include <xct_id.hpp>
Public Member Functions | |
McsWwLock * | get_key_lock () __attribute__((always_inline)) |
bool | is_keylocked () const __attribute__((always_inline)) |
bool | is_deleted () const __attribute__((always_inline)) |
bool | is_moved () const __attribute__((always_inline)) |
bool | is_next_layer () const __attribute__((always_inline)) |
bool | needs_track_moved () const __attribute__((always_inline)) |
bool | is_being_written () const __attribute__((always_inline)) |
void | reset () __attribute__((always_inline)) |
used only while page initialization More... | |
Public Attributes | |
McsWwLock | lock_ |
the first 64bit: Locking part of TID More... | |
XctId | xct_id_ |
the second 64bit: Persistent status part of TID. More... | |
Friends | |
std::ostream & | operator<< (std::ostream &o, const LockableXctId &v) |
|
inline |
Definition at line 1113 of file xct_id.hpp.
References lock_.
|
inline |
Definition at line 1119 of file xct_id.hpp.
References foedus::xct::XctId::is_being_written().
|
inline |
Definition at line 1115 of file xct_id.hpp.
References foedus::xct::XctId::is_deleted().
|
inline |
Definition at line 1114 of file xct_id.hpp.
References foedus::xct::McsWwLock::is_locked().
|
inline |
Definition at line 1116 of file xct_id.hpp.
References foedus::xct::XctId::is_moved().
|
inline |
Definition at line 1117 of file xct_id.hpp.
References foedus::xct::XctId::is_next_layer().
|
inline |
Definition at line 1118 of file xct_id.hpp.
References foedus::xct::XctId::needs_track_moved().
|
inline |
used only while page initialization
Definition at line 1122 of file xct_id.hpp.
References foedus::xct::XctId::data_, and foedus::xct::McsWwLock::reset().
|
friend |
Definition at line 190 of file xct_id.cpp.
McsWwLock foedus::xct::LockableXctId::lock_ |
the first 64bit: Locking part of TID
Definition at line 1109 of file xct_id.hpp.
Referenced by get_key_lock(), and foedus::xct::operator<<().
XctId foedus::xct::LockableXctId::xct_id_ |
the second 64bit: Persistent status part of TID.
Definition at line 1111 of file xct_id.hpp.
Referenced by foedus::xct::operator<<().