TableCache 是Level DB 中重要的類,Level DB 中多層(multi level),且每一層(level)有多個?key-value file,TableCache正是用來緩存多層以及多層中的file數據,更快速地檢索。
table cache
這里面的table是Level DB --- Table-CSDN博客所介紹的,cache是Level DB --- Cache_leveldb cache-CSDN博客所介紹的,table cache里面的key是Level DB --- WriteLevel0Table-CSDN博客?中所介紹的創建文件的文件名,value就是一個table實例。
核心函數
//在cache里面搜索file_number名字的table,如果cache中沒有則創建以file_number
//名字的table
Status FindTable(uint64_t file_number, uint64_t file_size, Cache::Handle**);//在cache里面搜索file_number名字的table,返回該table的Iterator
Iterator* NewIterator(const ReadOptions& options, uint64_t file_number,uint64_t file_size, Table** tableptr = nullptr);//在cache里面搜索file_number名字的table,在該table中調用InternalGet查找key-value
Status Get(const ReadOptions& options, uint64_t file_number,uint64_t file_size, const Slice& k, void* arg,void (*handle_result)(void*, const Slice&, const Slice&));