Кто-нибудь знает, почему функция-член DeleteObsoleteFiles является закрытой в leveldb? В некоторых ситуациях мне нужно освободить место на диске, и один из способов сделать это — попытаться удалить устаревшие файлы leveldb. Так я могу сделать это публично и безопасно позвонить?
Файлы становятся «устаревшими» после сжатия:
DeleteObsoleteFiles()
называется в конце каждого
уплотнение и в конце восстановления. Находит имена всех
файлы в базе данных. Он удаляет все файлы журнала, которые не являются
текущий файл журнала. Удаляет все файлы таблиц, на которые нет ссылок
с некоторого уровня и не являются выводом активного уплотнения.
Если вы хотите уменьшить занимаемое дисковое пространство, вы можете запустить сжатие
// Compact the underlying storage for the key range [*begin,*end].
// In particular, deleted and overwritten versions are discarded,
// and the data is rearranged to reduce the cost of operations
// needed to access the data. This operation should typically only
// be invoked by users who understand the underlying implementation.
//
// begin==NULL is treated as a key before all keys in the database.
// end==NULL is treated as a key after all keys in the database.
// Therefore the following call will compact the entire database:
// db->CompactRange(NULL, NULL);
virtual void CompactRange(const Slice* begin, const Slice* end)
Других решений пока нет …