21#include "storage/buffer/page.h"
30enum class LatchMemoType
44 LatchMemoType type = LatchMemoType::NONE;
45 Frame *frame =
nullptr;
46 common::SharedMutex *lock =
nullptr;
58 RC get_page(PageNum page_num,
Frame *&frame);
59 RC allocate_page(
Frame *&frame);
60 void dispose_page(PageNum page_num);
61 void latch(
Frame *frame, LatchMemoType type);
62 void xlatch(
Frame *frame);
63 void slatch(
Frame *frame);
64 bool try_slatch(
Frame *frame);
66 void xlatch(common::SharedMutex *lock);
67 void slatch(common::SharedMutex *lock);
71 void release_to(
int point);
73 int memo_point()
const {
return static_cast<int>(items_.size()); }
80 std::deque<LatchMemoItem> items_;
81 std::vector<PageNum> disposed_pages_;
BufferPool的实现
Definition: disk_buffer_pool.h:193
Definition: latch_memo.h:50
Definition: latch_memo.h:39