c++ - leveldb DeleteObsoleteFiles is private -
does knows why deleteobsoletefiles member function private in leveldb ? there situations when need free diskspace , 1 of ways try delete leveldb obsolete files. can make public , call safely ?
files become 'obsolute' after compaction:
deleteobsoletefiles()
called @ end of every compaction , @ end of recovery. finds names of files in database. deletes log files not current log file. deletes table files not referenced level , not output of active compaction.
if want reduce disc space occupied can run compaction
// compact underlying storage key range [*begin,*end]. // in particular, deleted , overwritten versions discarded, // , data rearranged reduce cost of operations // needed access data. operation should typically // invoked users understand underlying implementation. // // begin==null treated key before keys in database. // end==null treated key after keys in database. // therefore following call compact entire database: // db->compactrange(null, null); virtual void compactrange(const slice* begin, const slice* end)
Comments
Post a Comment