17#include "common/sys/rc.h"
18#include "common/lang/deque.h"
19#include "common/lang/vector.h"
20#include "storage/buffer/page.h"
32enum class LatchMemoType
46 LatchMemoType type = LatchMemoType::NONE;
47 Frame *frame =
nullptr;
60 RC get_page(PageNum page_num,
Frame *&frame);
70 void xlatch(
Frame *frame);
71 void slatch(
Frame *frame);
72 bool try_slatch(
Frame *frame);
79 void release_to(
int point);
81 int memo_point()
const {
return static_cast<int>(items_.size()); }
88 deque<LatchMemoItem> items_;
89 vector<PageNum> disposed_pages_;
BufferPool的实现
Definition: disk_buffer_pool.h:189
Definition: latch_memo.h:52
RC allocate_page(Frame *&frame)
分配页面
Definition: latch_memo.cpp:51
void dispose_page(PageNum page_num)
标记为即将释放的页面
Definition: latch_memo.cpp:64
void latch(Frame *frame, LatchMemoType type)
对指定页面加锁
Definition: latch_memo.cpp:66
Definition: latch_memo.h:41