MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
Public 成员函数 | Public 属性 | 静态 Public 属性 | 所有成员列表
BPFileHeader结构体 参考

BufferPool的文件第一个页面,存放一些元数据信息,包括了后面每页的分配信息。 更多...

#include <disk_buffer_pool.h>

Public 成员函数

std::string to_string () const
 

Public 属性

int32_t page_count
 
int32_t allocated_pages
 当前文件一共有多少个页面
 
char bitmap [0]
 已经分配了多少个页面
 

静态 Public 属性

static const int MAX_PAGE_NUM = (BP_PAGE_DATA_SIZE - sizeof(page_count) - sizeof(allocated_pages)) * 8
 页面分配位图, 第0个页面(就是当前页面),总是1 更多...
 

详细描述

BufferPool的文件第一个页面,存放一些元数据信息,包括了后面每页的分配信息。

TODO 1. 当前的做法,只能分配比较少的页面,你可以扩展一下,支持更多的页面或无限多的页面吗?
可以参考Linux ext(n)和Windows NTFS等文件系统
2. 当前使用bitmap存放页面分配情况,但是这种方法在页面非常多的时候,查找空闲页面的
效率非常低,你有办法优化吗?

类成员变量说明

◆ MAX_PAGE_NUM

const int BPFileHeader::MAX_PAGE_NUM = (BP_PAGE_DATA_SIZE - sizeof(page_count) - sizeof(allocated_pages)) * 8
static

页面分配位图, 第0个页面(就是当前页面),总是1

能够分配的最大的页面个数,即bitmap的字节数 乘以8


该结构体的文档由以下文件生成: