| 332 | std::vector<std::string> PersistentCacheImpl::GetAllKeys() { return metadata_.GetAllKeys(); } |
| 333 | |
| 334 | Status PersistentCacheImpl::DeleteFileAndReleaseCache(CacheFile* file) { |
| 335 | uint64_t file_size; |
| 336 | auto status = file->Delete(&file_size); |
| 337 | if (!status.ok()) { |
| 338 | // unable to delete file |
| 339 | LEVELDB_LOG("Remove evicted cache file %lu.rc failed, reason: %s.", file->cacheid(), |
| 340 | status.ToString().c_str()); |
| 341 | return status; |
| 342 | } |
| 343 | |
| 344 | assert(file_size <= (uint64_t)size_.Get()); |
| 345 | size_.Sub(file_size); |
| 346 | assert(size_.Get() >= 0); |
| 347 | return status; |
| 348 | } |
| 349 | |
| 350 | void PersistentCacheImpl::GarbageCollect() { |
| 351 | std::vector<std::unique_ptr<CacheFile>> evictable_files = metadata_.CollectEvictableFiles(); |