|
MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
|
Public 成员函数 | |
| LatchMemo (DiskBufferPool *buffer_pool) | |
| 当前遇到的场景都是针对单个BufferPool的,不过从概念上讲,不一定做这个限制 | |
| RC | get_page (PageNum page_num, Frame *&frame) |
| RC | allocate_page (Frame *&frame) |
| 分配页面 | |
| void | dispose_page (PageNum page_num) |
| 标记为即将释放的页面 | |
| void | latch (Frame *frame, LatchMemoType type) |
| 对指定页面加锁 | |
| void | xlatch (Frame *frame) |
| void | slatch (Frame *frame) |
| bool | try_slatch (Frame *frame) |
| void | xlatch (common::SharedMutex *lock) |
| void | slatch (common::SharedMutex *lock) |
| void | release () |
| void | release_to (int point) |
| int | memo_point () const |
Private 成员函数 | |
| void | release_item (LatchMemoItem &item) |
Private 属性 | |
| DiskBufferPool * | buffer_pool_ = nullptr |
| deque< LatchMemoItem > | items_ |
| vector< PageNum > | disposed_pages_ |