rocksdb的原子flush

如果始终启用 WAL,则无需使用原子刷新选项。启用 WAL 后,单个 WAL 文件用于捕获对所有列族的写入;因此,恢复的数据库(通过在崩溃/恢复路径中重播 WAL 日志)保证在所有列系列中保持一致。

启用/禁用原子刷新作为数据库选项很容易。 要在启用原子刷新的情况下打开数据库,请执行以下操作:

Options options;
... // Set other options
options.atomic_flush = true;
DBOptions db_opts(options);
DB* db = nullptr;
Status s = DB::Open(db_opts, dbname, column_families, &handles, &db);

对于自动触发的刷新,RocksDB 以原子方式刷新所有列族。

对于手动刷新,应用程序必须在 DB::Flush() 中指定要原子刷新的列族列表:

w_opts.disable_wal = true;
db->Put(w_opts, cf_handle1, key1, value1);
db->Put(w_opts, cf_handle2, key2, value2);
FlushOptions flush_opts;
Status s = db->Flush(flush_opts, {cf_handle1, cf_handle2});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值