rocksdb-doc-cn

概述

我们有能力使一个RocksDB实例,或者多个实例聚合在一起, 的磁盘使用量,保持在一定数值以下。在一些一个文件系统被多个应用使用,并且其他应用系统需要与预先增长的数据库隔离的情况,是非常有用的。

追踪硬盘空间使用以及,可选的,限制数据库大小,是通过rocksdb::SstFileManager来实现的。他通过调用NewSstFileManager来生成,返回的对象被赋值给DBOptions::sst_file_manager。可以在多个DB实例之间共享一个SstFileManager。

使用

追踪db大小

通过调用SstFileManager::GetTotalSize(),调用者可以知道DB使用的总磁盘空间。他返回所有SST文件使用的总大小。WAL文件不会被包括进去。如果同一个SstFileManager被用于多个DB实例,GetTotalSize会返回所有实例的总大小。

限制DB大小

通过调用SstFileManager::SetMaxAllowedSpaceUsage()以及,可选的,SstFileManager::SetCompactionBufferSize(),可以限制磁盘空间使用的方式。两个函数都接受一个参数,该参数以byte为单位,声明希望使用的尺寸。前者设置一个硬性DB大小限制,后者声明在决定是否压缩前,内部需要保留的空间。

设置最大的DB大小可以从下面几方面影响DB行为。

看到这里或许你有建议或者疑问或者指出错误,请留言评论! 多谢! 你的评论非常重要!也可以帮忙点赞收藏转发!多谢支持! 觉得写的不错那就给点吧, 在线乞讨 微信转账