18 #ifndef FOEDUS_STORAGE_MASSTREE_MASSTREE_RESERVE_IMPL_HPP_
19 #define FOEDUS_STORAGE_MASSTREE_MASSTREE_RESERVE_IMPL_HPP_
98 bool should_aggresively_create_next_layer,
100 : xct::SysxctFunctor(),
105 remainder_length_(remainder_length),
106 payload_count_(payload_count),
107 hint_check_from_(hint_check_from),
108 should_aggresively_create_next_layer_(should_aggresively_create_next_layer),
109 out_split_needed_(false) {
117 #endif // FOEDUS_STORAGE_MASSTREE_MASSTREE_RESERVE_IMPL_HPP_
MasstreeBorderPage *const target_
The page to install a new physical record.
const KeySlice slice_
The slice of the key.
uint16_t PayloadLength
Represents a byte-length of a payload in this package.
uint16_t SlotIndex
Index of a record in a (border) page.
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
Represents one thread running on one NUMA core.
A system transaction to reserve a physical record(s) in a border page.
Represents one border page in Masstree Storage.
const PayloadLength payload_count_
Minimal required length of the payload.
uint64_t KeySlice
Each key slice is an 8-byte integer.
thread::Thread *const context_
Thread context.
Definitions of IDs in this package and a few related constant values.
uint16_t KeyLength
Represents a byte-length of a key in this package.
A functor representing the logic in a system transaction via virtual-function.
bool out_split_needed_
[Out]
virtual ErrorCode run(xct::SysxctWorkspace *sysxct_workspace) override
Execute the system transaction.
const void *const suffix_
Suffix of the key.
const bool should_aggresively_create_next_layer_
When we CAN create a next layer for the new record, whether to make it a next-layer from the beginnin...
const KeyLength remainder_length_
Length of the remainder.
const SlotIndex hint_check_from_
The in-page location from which this sysxct will look for matching records.
Forward declarations of classes in masstree storage package.
Forward declarations of classes in thread package.
ErrorCode
Enum of error codes defined in error_code.xmacro.
Per-thread reused work memory for system transactions.
ReserveRecords(thread::Thread *context, MasstreeBorderPage *target, KeySlice slice, KeyLength remainder_length, const void *suffix, PayloadLength payload_count, bool should_aggresively_create_next_layer, SlotIndex hint_check_from)