事务日志参数
xSQL 配置文件可用于定义与 C API 中的 mco_TL_start_data_t 结构相对应的 SmartEDB 事务日志参数。
tl_params部分由一组用大括号括起来的“name: value”对组成。例如:
tl_params : {
flags : [crc, iterable],
log_path : "my.log",
...
}
以下表格列出了 tl_params 部分的可能选项,以及注释中指定的相应 C API 结构和值:
flags
flags : [crc, iterable]
事务日志标志(mco_TL_start_data::flags)。标志的组合循环冗余校验(MCO_TRANSLOG_CRC)和可迭代对象(MCO_TRANSLOG_ITERABLE)
MCO_TRANSLOG_APPEND、MCO_TRANSLOG_SIZE_CLBK、MCO_TRANSLOG_SYNC_INSTANTLY 和 MCO_TRANSLOG_SYNC_COUNT 会自动启用(见下文)
默认值 0
log_path
log_path : "my.log",
日志文件路径。必填项,无默认值。
snapshot_path
snapshot_path : "my.img",
mco_translog_db_save() 函数使用的已保存图像的路径。并非必需,但若未设置,则无法调用 mco_translog_db_save() API。
disk_page_size
disk_page_size : 4096,
单个磁盘页面的大小(以字节为单位)(mco_TL_start_data::disk_page_size)。默认值为 4096。
flush_depth
flush_depth : 10
未刷新的最大记录数(mco_TL_start_data::flush_depth)。 若设为 0,则不刷新。若设为 1,则自动设置 MCO_TRANSLOG_SYNC_INSTANTLY 标志。若大于 1,则自动设置 MCO_TRANSLOG_SYNC_COUNT 标志。 默认值为 0(不刷新)
max_size
max_size : 1m
日志文件的最大大小(以字节为单位)。当达到限制时,会自动调用 mco_translog_db_save() 函数。该函数会保存数据库映像并截断日志文件。当 max_size > 0 时,需要参数 snapshot_path。 默认值为 0(无限制)
snapshot_period
snapshot_period : 5000
以毫秒为单位的周期,用于自动调用 mco_translog_db_save() 函数。 此函数会保存数据库映像并截断日志文件。当 snapshot_period > 0 时,参数 snapshot_path 是必需的。 可与 max_size 一起使用。 默认值为 0(不进行周期性快照)
apply
apply : auto
当启动 xSQL 时是否应用已保存的 TL 文件。可能的值为:
yes: 请执行(mco_db_load(快照路径)+ mco_translog_apply(日志路径))。如果文件不存在或出现其他错误,请勿启动 xSQL。
no:不要应用 TL,只需使用指定参数创建数据库。
auto:如果snapshot_path和log_path文件存在,则应用TL(默认值)
stopped
stopped : false
布尔型参数,如果为真,则 TL 不会自动启动(但已配置)默认值为 false。