leveldb DeleteObsoleteFiles является частной

Кто-нибудь знает, почему функция-член DeleteObsoleteFiles является закрытой в leveldb? В некоторых ситуациях мне нужно освободить место на диске, и один из способов сделать это — попытаться удалить устаревшие файлы leveldb. Так я могу сделать это публично и безопасно позвонить?

0

Решение

Файлы становятся «устаревшими» после сжатия:

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)
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]