MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
Public 成员函数 | Private 属性 | 所有成员列表
BufferPoolManager类 参考final

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)
 
BPFrameManagerget_frame_manager ()
 
DoubleWriteBufferget_dblwr_buffer ()
 
RC get_buffer_pool (int32_t id, DiskBufferPool *&bp)
 根据ID获取对应的BufferPool对象 更多...
 

Private 属性

BPFrameManager frame_manager_ {"BufPool"}
 
unique_ptr< DoubleWriteBufferdblwr_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的管理类

成员函数说明

◆ create_file()

RC BufferPoolManager::create_file ( const char *  file_name)

Here don't care about the failure

◆ get_buffer_pool()

RC BufferPoolManager::get_buffer_pool ( int32_t  id,
DiskBufferPool *&  bp 
)

根据ID获取对应的BufferPool对象

在做redo时,需要根据ID获取对应的BufferPool对象,然后让bufferPool对象自己做redo

参数
idbuffer pool id
bpbuffer pool 对象

该类的文档由以下文件生成: