18 #ifndef FOEDUS_LOG_COMMON_LOG_TYPES_HPP_
19 #define FOEDUS_LOG_COMMON_LOG_TYPES_HPP_
87 if (log_length_ >= 16) {
103 #define LOG_TYPE_NO_CONSTRUCT(clazz) \
104 clazz() CXX11_FUNC_DELETE;\
105 clazz(const clazz &other) CXX11_FUNC_DELETE;\
106 ~clazz() CXX11_FUNC_DELETE;
222 kLogWriteUnitSize = 1 << 12,
228 bool is_engine_log()
const {
return true; }
240 void populate(uint64_t size);
297 void populate(
Epoch old_epoch,
Epoch new_epoch,
298 uint8_t logger_numa_node, uint8_t logger_in_node_ordinal,
299 uint16_t logger_id, uint32_t log_file_ordinal, uint64_t log_file_offset);
308 #endif // FOEDUS_LOG_COMMON_LOG_TYPES_HPP_
void apply_engine(thread::Thread *)
bool is_engine_log() const
LogCode
A unique identifier of all log types.
Base class for log type of storage-wide operation.
void apply_engine(thread::Thread *)
bool is_record_log() const
Base class for log type of engine-wide operation.
Definitions of IDs in this package and a few related constant values.
bool is_engine_log() const
LogCodeKind
Represents the kind of log types.
void apply_record(thread::Thread *, storage::StorageId, xct::RwLockableXctId *, char *)
void apply_storage(Engine *, storage::StorageId)
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.
bool is_engine_log() const
uint64_t log_file_offset_
Byte offset of the epoch mark log itself in the log.
Forward declarations of classes in transaction package.
Forward declarations of classes in root package.
Persistent status part of Transaction ID.
void assert_valid() const __attribute__((always_inline))
void apply_record(thread::Thread *, storage::StorageId, xct::RwLockableXctId *, char *)
uint16_t logger_id_
Unique ID of the logger.
Epoch old_epoch_
Epoch before this switch.
void apply_storage(Engine *, storage::StorageId)
void assert_valid() const __attribute__((always_inline))
bool is_storage_log() const
bool is_valid_log_type(LogCode code)
Returns if the LogCode value exists.
The MCS reader-writer lock variant of LockableXctId.
Constants
Constant values.
Forward declarations of classes in storage package.
bool is_storage_log() const
Definitions of IDs in this package and a few related constant values.
uint32_t log_file_ordinal_
Ordinal of log files (eg "log.0", "log.1").
void assert_valid_generic() const __attribute__((always_inline))
Verifies the log contains essential fields set.
Database engine object that holds all resources and provides APIs.
A log type to declare a switch of epoch in a logger or the engine.
void apply_engine(thread::Thread *)
bool is_record_log() const
bool is_record_log() const
LogCodeKind get_log_code_kind(LogCode code)
Returns the kind of the given log code.
A dummy log type to fill up a sector in log files.
uint8_t logger_in_node_ordinal_
Ordinal of the logger in the numa node.
bool is_storage_log() const
void apply_record(thread::Thread *, storage::StorageId, xct::RwLockableXctId *, char *)
std::ostream & operator<<(std::ostream &o, const LogHeader &v)
Epoch new_epoch_
Epoch after this switch.
void apply_storage(Engine *, storage::StorageId)
bool is_storage_log() const
#define LOG_TYPE_NO_CONSTRUCT(clazz)
Macro to delete all constructors/destructors to prevent misuse for log type classes.
0x3001 : foedus::log::FillerLogType .
#define STATIC_SIZE_CHECK(desired, actual)
void assert_valid_generic() const __attribute__((always_inline))
Verifies the log contains essential fields set.
Base class for log type of record-wise operation.
#define ASSERT_ND(x)
A warning-free wrapper macro of assert() that has no performance effect in release mode even when 'x'...
uint8_t logger_numa_node_
Numa node of the logger that produced this log.
Forward declarations of classes in thread package.
#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.
bool is_record_log() const