事务日志文件
正如在持久数据库恢复页面中所解释的那样,SmartEDB 运行时会使用事务日志文件在应用程序发生先前崩溃的情况下自动执行恢复操作。持久数据库 I/O 页面解释了不同的日志类型以及如何为不同的应用程序配置选择适当的类型。事务写入日志的方式由事务提交策略决定。以下部分将解释如何在 C 应用程序中设置日志类型和提交策略。
日志类型
日志类型在调用 exdb.open_database() 方法时指定。例如:
// Set log file type
db = exdb.open_database(..., db_log_type = 'UNDO_LOG';
提交政策
正如“持久数据库 I/O”页面中所解释的,SmartEDB 为 REDO_LOG 和 UNDO_LOG 日志类型提供了四种不同的提交策略选项。提交策略和参数设置在 log_params 结构中,然后将其用作传递给 exdb.open_database() 的参数。提交策略在 DefaultCommitPolicy 中设置,对于 REDO_LOG 类型,在 RedoLogLimit 中设置。此外,对于延迟策略,还可以指定 DelayedCommitThreshold。
例如,以下代码片段演示了如何设置日志类型、提交策略和参数:
log_params = exdb.LogParams( RedoLogLimit = 1L*1024*1024*1024,
DefaultCommitPolicy = exdb.CommitPolicy.Delayed,
DelayedCommitThreshold = hw_conf['CACHE_SIZE']*8/10)
...
db = exdb.open_database(...,
is_disk=true,
db_log_type = ‘UNDO_LOG’,
log_params = log_params,
...);