MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
|
BufferPool的管理类 更多...
#include <disk_buffer_pool.h>
Public 成员函数 | |
BufferPoolManager (int memory_size=0) | |
RC | init (unique_ptr< DoubleWriteBuffer > dblwr_buffer) |
RC | create_file (const char *file_name) |
RC | open_file (LogHandler &log_handler, const char *file_name, DiskBufferPool *&bp) |
RC | close_file (const char *file_name) |
RC | flush_page (Frame &frame) |
BPFrameManager & | get_frame_manager () |
DoubleWriteBuffer * | get_dblwr_buffer () |
RC | get_buffer_pool (int32_t id, DiskBufferPool *&bp) |
根据ID获取对应的BufferPool对象 更多... | |
Private 属性 | |
BPFrameManager | frame_manager_ {"BufPool"} |
unique_ptr< DoubleWriteBuffer > | dblwr_buffer_ |
common::Mutex | lock_ |
unordered_map< string, DiskBufferPool * > | buffer_pools_ |
unordered_map< int32_t, DiskBufferPool * > | id_to_buffer_pools_ |
atomic< int32_t > | next_buffer_pool_id_ {1} |
BufferPool的管理类
RC BufferPoolManager::create_file | ( | const char * | file_name | ) |
Here don't care about the failure
RC BufferPoolManager::get_buffer_pool | ( | int32_t | id, |
DiskBufferPool *& | bp | ||
) |
根据ID获取对应的BufferPool对象
在做redo时,需要根据ID获取对应的BufferPool对象,然后让bufferPool对象自己做redo
id | buffer pool id |
bp | buffer pool 对象 |