对外提供服务的CLog模块
更多...
#include <disk_log_handler.h>
|
RC | _append (LSN &lsn, LogModule module, vector< char > &&data) override |
| 在缓存中增加一条日志 更多...
|
|
void | thread_func () |
| 刷新日志的线程函数
|
|
|
unique_ptr< thread > | thread_ |
|
atomic_bool | running_ {false} |
| 刷新日志的线程
|
|
LogFileManager | file_manager_ |
| 是否还要继续运行
|
|
LogEntryBuffer | entry_buffer_ |
| 管理所有的日志文件
|
|
string | path_ |
| 缓存日志
|
|
对外提供服务的CLog模块
该模块负责日志的写入、读取、回放等功能。 会在后台开启一个线程,一直尝试刷新内存中的日志到磁盘。 所有的CLog日志文件都存放在指定的目录下,每个日志文件按照日志条数来划分。 调用的顺序应该是:
handler.
init(
"/path/to/log");
handler.
replay(replayer, start_lsn);
handler.wait();
对外提供服务的CLog模块
Definition: disk_log_handler.h:49
RC init(const char *path) override
初始化日志模块
Definition: disk_log_handler.cpp:26
RC start() override
启动线程刷新日志到磁盘
Definition: disk_log_handler.cpp:32
RC stop() override
设置停止标识,并不会真正的停止
Definition: disk_log_handler.cpp:45
RC replay(LogReplayer &replayer, LSN start_lsn) override
回放日志
Definition: disk_log_handler.cpp:76
◆ _append()
RC DiskLogHandler::_append |
( |
LSN & |
lsn, |
|
|
LogModule |
module, |
|
|
vector< char > && |
data |
|
) |
| |
|
overrideprivatevirtual |
在缓存中增加一条日志
- 参数
-
[out] | lsn | 返回的LSN |
[in] | module | 日志模块 |
[in] | data | 日志数据。具体的数据由各个模块自己定义 |
实现了 LogHandler.
◆ await_termination()
RC DiskLogHandler::await_termination |
( |
| ) |
|
|
overridevirtual |
◆ current_lsn()
LSN DiskLogHandler::current_lsn |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ init()
RC DiskLogHandler::init |
( |
const char * |
path | ) |
|
|
overridevirtual |
◆ iterate()
RC DiskLogHandler::iterate |
( |
function< RC(LogEntry &)> |
consumer, |
|
|
LSN |
start_lsn |
|
) |
| |
|
overridevirtual |
迭代日志
从start_lsn开始,迭代所有的日志。这仅仅是一个辅助函数。
- 参数
-
consumer | 消费者 |
start_lsn | 从哪个位置开始迭代 |
实现了 LogHandler.
◆ replay()
RC DiskLogHandler::replay |
( |
LogReplayer & |
replayer, |
|
|
LSN |
start_lsn |
|
) |
| |
|
overridevirtual |
回放日志
日志回放后,会记录当前日志的最新状态,包括当前最大的LSN。 所以这个接口应该在启动之前调用一次。
- 参数
-
replayer | 回放日志接口 |
start_lsn | 从哪个位置开始回放 |
实现了 LogHandler.
◆ start()
RC DiskLogHandler::start |
( |
| ) |
|
|
overridevirtual |
◆ stop()
RC DiskLogHandler::stop |
( |
| ) |
|
|
overridevirtual |
◆ wait_lsn()
RC DiskLogHandler::wait_lsn |
( |
LSN |
lsn | ) |
|
|
overridevirtual |
该类的文档由以下文件生成:
- src/observer/storage/clog/disk_log_handler.h
- src/observer/storage/clog/disk_log_handler.cpp