我正在使用rocksdb进行项目,并且遇到以下问题。
我试图将大约1.5GB的数据加载到Column Family中。加载数据后,内存增加到〜1.5GB。现在,我删除了Columnfamily,我希望可以回收使用的内存(〜1.5GB)。但是事实并非如此。 当我用一半的数据(〜750 MB)尝试同样的操作时,内存立即被释放。
注意:仅删除了列族,但没有删除列族句柄。
config参数是 内存大小为1GB。 memtables_to_merge为2。
在RocksDB WIKI中,我看到了这一点,
DropColumnFamily(ColumnFamilyHandle * column_family)
拖放由ColumnFamilyHandle指定的列族。请注意 直到客户端调用delete才删除实际数据 column_family;。如果您仍然可以继续使用列族 具有出色的ColumnFamilyHandle指针。
我遇到的情况与此陈述不符。
我不确定是什么原因导致了这种行为。它对不可变的内存表有什么作用吗?我如何避免呢?