快照 - Snapshots
快照在键值存储的整体状态上提供了一致的只读视图。ReadOptions::snapshot
可能是non-NULL
,表示读取操作在特定的DB
版本状态上进行的。如果ReadOptions::snapshot
是NULL
,则读取操作将在当前状态上进行隐式的快照操作。
快照是通过DB::GetSnapshot
方法进行创建的:
leveldb::ReadOptions options;
options.snapshot = db->GetSnapshot();
... apply some updates to db ...
leveldb::Iterator* iter = db->NewIterator(options);
... read using iter to view the state when the snapshot was created ...
delete iter;
db->ReleaseSnapshot(options.snapshot);
注意:当一个快照长期不用时,应该通过DB::ReleaseSnapshot
接口释放它。这样既可以让底层实现丢弃那些为支持该快照的读取操作而进行维护的一些状态数据。
当前内容版权归 kevins.pro 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 kevins.pro .