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

管理所有的日志文件 更多...

#include <log_file.h>

Public 成员函数

RC init (const char *directory, int max_entry_number_per_file)
 初始化 更多...
 
RC list_files (vector< string > &files, LSN start_lsn)
 列出所有的日志文件,第一个日志文件包含大于等于start_lsn最小的日志 更多...
 
RC last_file (LogFileWriter &file_writer)
 获取最新的一个日志文件名 更多...
 
RC next_file (LogFileWriter &file_writer)
 获取一个新的日志文件名 更多...
 

静态 Private 成员函数

static RC get_lsn_from_filename (const string &filename, LSN &lsn)
 从文件名称中获取LSN 更多...
 

Private 属性

filesystem::path directory_
 
int max_entry_number_per_file_
 日志文件存放的目录
 
map< LSN, filesystem::path > log_files_
 一个文件最大允许存放多少条日志
 

静态 Private 属性

static constexpr const char * file_prefix_ = "clog_"
 
static constexpr const char * file_suffix_ = ".log"
 

详细描述

管理所有的日志文件

日志文件都在某个目录下,使用固定的前缀加上日志文件的第一个LSN作为文件名。 每个日志文件没有最大字节数要求,但是以固定条数的日志为一个文件,这样方便查找。

成员函数说明

◆ get_lsn_from_filename()

RC LogFileManager::get_lsn_from_filename ( const string &  filename,
LSN &  lsn 
)
staticprivate

从文件名称中获取LSN

如果日志文件名不符合要求,就返回失败

◆ init()

RC LogFileManager::init ( const char *  directory,
int  max_entry_number_per_file 
)

初始化

参数
directory日志文件目录
max_entry_number_per_file一个文件最多存储多少条日志

◆ last_file()

RC LogFileManager::last_file ( LogFileWriter file_writer)

获取最新的一个日志文件名

如果当前有文件就获取最后一个日志文件,否则创建一个日志文件,也就是第一个日志文件

◆ list_files()

RC LogFileManager::list_files ( vector< string > &  files,
LSN  start_lsn 
)

列出所有的日志文件,第一个日志文件包含大于等于start_lsn最小的日志

参数
files满足条件的所有日志文件名
start_lsn想要查找的日志的最小LSN

◆ next_file()

RC LogFileManager::next_file ( LogFileWriter file_writer)

获取一个新的日志文件名

获取下一个日志文件名。通常是上一个日志文件写满了,通过这个接口生成下一个日志文件


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