18 #ifndef FOEDUS_STORAGE_SEQUENTIAL_SEQUENTIAL_LOG_TYPES_HPP_
19 #define FOEDUS_STORAGE_SEQUENTIAL_SEQUENTIAL_LOG_TYPES_HPP_
50 namespace sequential {
98 uint16_t payload_count_;
101 static uint16_t calculate_log_length(uint16_t payload_count)
ALWAYS_INLINE {
113 payload_count_ = payload_count;
114 std::memcpy(payload_, payload, payload_count);
142 #endif // FOEDUS_STORAGE_SEQUENTIAL_SEQUENTIAL_LOG_TYPES_HPP_
SequentialMetadata metadata_
Base class for log type of storage-wide operation.
T align8(T value)
8-alignment.
void apply_storage(Engine *engine, StorageId storage_id)
sequential::SequentialStorage get_sequential(StorageId id)
Returns the sequential storage of given ID.
Definitions of IDs in this package and a few related constant values.
storage::StorageManager * get_storage_manager() const
See Storage Manager.
#define CXX11_NULLPTR
Used in public headers in place of "nullptr" of C++11.
void populate(StorageId storage_id, const void *payload, uint16_t payload_count) __attribute__((always_inline))
uint32_t StorageId
Unique ID for storage.
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
Represents one thread running on one NUMA core.
Declares common log types used in all packages.
friend std::ostream & operator<<(std::ostream &o, const SequentialCreateLogType &v)
The MCS reader-writer lock variant of LockableXctId.
Represents an append/scan-only store.
Forward declarations of classes in sequential storage package.
Definitions of IDs in this package and a few related constant values.
Database engine object that holds all resources and provides APIs.
Log type of CREATE SEQUENTIAL STORAGE operation.
0x0026 : foedus::storage::sequential::SequentialAppendLogType .
Engine * get_engine() const
Definitions of IDs in this package and a few related constant values.
void assert_valid() __attribute__((always_inline))
Log type of TRUNCATE SEQUENTIAL STORAGE operation.
void apply_append_record(thread::Thread *context, const SequentialAppendLogType *log_entry)
Used to apply the effect of appending to volatile list.
#define LOG_TYPE_NO_CONSTRUCT(clazz)
Macro to delete all constructors/destructors to prevent misuse for log type classes.
Atomic fence methods and load/store with fences that work for both C++11/non-C++11 code...
const uint16_t kMaxPayload
Payload must be shorter than this length.
Log type of sequential-storage's append operation.
#define ASSERT_ND(x)
A warning-free wrapper macro of assert() that has no performance effect in release mode even when 'x'...
#define ALWAYS_INLINE
A function suffix to hint that the function should always be inlined.
void assert_valid_generic() __attribute__((always_inline))
Verifies the log contains essential fields set.
void apply_record(thread::Thread *context, StorageId storage_id, xct::RwLockableXctId *owner_id, char *payload) __attribute__((always_inline))