不过在最新的1.15版本中,这个问题已得到了解决。
6. 如果磁盘被100%写满了,此时最好不要停止leveldb实例,不然下次就无法使用已有的数据了,当磁盘容量到100%时,原有的leveldb就无法打开了。在快速写入数据时,会产生大量的log文件,等这些log文件被后台压缩线程处理后,将会释放出很多被临时暂用的空间。
7. 在1.15版本中,如果使用NewIterator函数创建了leveldb::Iterator对象而没有delete该对象的话,在程序退出时将会报出如下错误:
db/version_set.cc:806: leveldb::VersionSet::~VersionSet(): Assertion `dummy_versions_.next_ == &dummy_versions_' failed.
根据代码分析,这里assert失败的原因主要是为了防止内存泄露。
下载本文