242 bool resize_item(
int item,
size_t new_length,
size_t keep_old);
420 item_length_t item_len;
453 #define STATIC_LESS_THAN(x, y) BOOST_STATIC_ASSERT((x) < (y)) 461 return btree_level == 1;
527 friend class test_bf_tree;
529 friend w_rc_t test_bf_fix_virgin_root(
ss_m* , test_volume_t* test_volume);
532 friend w_rc_t test_bf_fix_virgin_child(
ss_m* , test_volume_t* test_volume);
534 friend w_rc_t test_bf_evict(
ss_m* , test_volume_t* test_volume);
536 friend w_rc_t _test_bf_swizzle(
ss_m* , test_volume_t* test_volume,
bool enable_swizzle);
671 return static_cast<T volatile&
>(t);
674 #endif // __BTREE_PAGE_H PageID btree_foster
Foster link page ID (0 if not linked).
Definition: btree_page.h:70
Definition: btree_page.h:410
Definition: logdef_gen.h:353
void unset_ghost(int item)
turn the given item into a non-ghost item
Definition: btree_page.cpp:95
void remove_items(const int item_count, const w_keystr_t &high)
Definition: btree_page.cpp:22
struct btree_page_data::item_body::@22::@25 interior
size of region available to store items
Definition: btree_page.h:46
STATIC_LESS_THAN(data_sz, 1<<(sizeof(item_length_t) *8))
static size_t _item_align(size_t i)
align to item_body alignment boundary (integral multiple of item_body's)
Definition: btree_page.h:465
#define w_assert1(x)
Level 1 should not add significant extra time.
Definition: w_base.h:198
bool replace_item_data(int item, size_t offset, const cvec_t &new_data)
Definition: btree_page.cpp:189
item_head head[max_heads]
Definition: btree_page.h:445
item_index_t nghosts
number of current ghost items
Definition: btree_page.h:348
Page handle for B-Tree data page.
Definition: btree_page_h.h:185
size_t usable_space() const
Definition: btree_page.h:652
bool resize_item(int item, size_t new_length, size_t keep_old)
Definition: btree_page.cpp:147
item_length_t item_len
Definition: btree_page.h:414
int16_t btree_chain_fence_high_length
Definition: btree_page.h:96
A generic page view: any Zero page can be viewed as being of this type but it only exposes fields sha...
Definition: generic_page.h:121
Key string class which can represent a few special values.
Definition: w_key.h:47
bool is_leaf() const
are we a leaf node?
Definition: btree_page.h:460
void set_ghost(int item)
turn the given item into a ghost item
Definition: btree_page.cpp:84
The internal implementation class which actually implements the functions of btree_m.
Definition: btree_impl.h:66
Definition: btree_page.h:399
int16_t btree_level
Definition: btree_page.h:77
A constant vec_t (meaning things pointed to cannot be changed).
Definition: vec_t.h:95
char * unused_part(size_t &length)
Definition: btree_page.cpp:477
Definition: logrec_support.h:19
size_t item_length(int item) const
Definition: btree_page.h:620
void init_items()
Definition: btree_page.cpp:12
body_offset_t _item_bodies(body_offset_t offset) const
Definition: btree_page.h:576
uint16_t padding
padding to ensure header size is a multiple of 8
Definition: btree_page.h:354
size_t _item_body_overhead() const
add this to data length to get bytes used in item bodies (not counting padding)
Definition: btree_page.h:550
void truncate_all(size_t amount, size_t pos)
Definition: btree_page.cpp:276
friend std::ostream & operator<<(std::ostream &, btree_page_data &)
Definition: btree_page.cpp:344
uint32_t PageID
Definition: basics.h:45
void delete_range(int from, int to)
Definition: btree_page.cpp:220
This is the SHORE Storage Manager API.
Definition: sm.h:405
size of all header fields combined
Definition: btree_page.h:41
Log Sequence Number. See Log Sequence Numbers (LSN).
Definition: lsn.h:243
body_offset_t offset
Definition: btree_page.h:404
PageID btree_root
Definition: btree_page.h:64
BOOST_STATIC_ASSERT(sizeof(item_head)==4)
lsn_t btree_foster_emlsn
Definition: btree_page.h:377
Definition: btree_page.h:441
int16_t btree_consecutive_skewed_insertions
Definition: btree_page.h:119
T volatile & ACCESS_ONCE(T &t)
Definition: btree_page.h:670
int16_t btree_fence_high_length
Definition: btree_page.h:89
bool is_ghost(int item) const
is the given item a ghost?
Definition: btree_page.h:581
item_index_t nitems
current number of items
Definition: btree_page.h:345
Return code for most functions and methods.
Definition: w_rc.h:87
uint16_t item_length_t
Definition: btree_page.h:332
void delete_item(int item)
Definition: btree_page.cpp:198
uint16_t poor_man_key
The type of poor_man_key data.
Definition: btree_page.h:163
Definition: btree_page.h:436
void compact()
compact item space, making all freed space available.
Definition: btree_page.cpp:446
char * item_data(int item)
Definition: btree_page.h:607
bool insert_item(int item, bool ghost, poor_man_key poor, PageID child, size_t data_length)
Definition: btree_page.cpp:106
Definition: btree_page.h:437
body_offset_t first_used_body
offset to beginning of used item bodies (# of used item body that is located left-most).
Definition: btree_page.h:351
int16_t btree_fence_low_length
Definition: btree_page.h:83
poor_man_key item_poor(int item) const
return the poor_man_key data for the given item
Definition: btree_page.h:591
PageID btree_pid0
First child pointer in non-leaf nodes.
Definition: btree_page.h:67
int16_t body_offset_t
Definition: btree_page.h:338
int64_t _for_alignment_only
Definition: btree_page.h:428
Definition: btree_page.h:439
bool _items_are_consistent() const
Definition: btree_page.cpp:365
PageID child
Definition: btree_page.h:419
item_body body[max_bodies]
Definition: btree_page.h:446
size_t item_space(int item) const
Definition: btree_page.h:642
int number_of_ghosts() const
return number of current items that are ghosts
Definition: btree_page.h:149
bool eq(const btree_page_data &) const
Definition: btree_page.cpp:321
struct btree_page_data::item_body::@22::@24 leaf
poor_man_key poor
Definition: btree_page.h:405
int16_t btree_prefix_length
Definition: btree_page.h:106
int number_of_items() const
Definition: btree_page.h:144
item_length_t & _item_body_length(body_offset_t offset)
Definition: btree_page.h:558
lsn_t btree_pid0_emlsn
Definition: btree_page.h:370
uint16_t item_index_t
Definition: btree_page.h:330
#define T
Definition: w_okvl_inl.h:45
This class holds B-tree-specific headers as well as an ordered list of items.
Definition: btree_page.h:37
static const size_t max_item_overhead
Definition: btree_page.h:317
B-tree page.
Definition: btree_page.h:518
PageID & item_child(int item)
Definition: btree_page.h:596
size_t predict_item_space(size_t data_length) const
Definition: btree_page.h:637