Overview
每創(chuàng)建一個(gè)sst文件時(shí) ,就將這個(gè)文件的添加進(jìn)table_cache中疙筹。
這是有理由的富俄,因?yàn)樾聞?chuàng)建的文件禁炒,也必定是最新的,所以在一定程度上可能馬上就被要使用到霍比。
因?yàn)椴樵?xún)鍵值對(duì)時(shí)幕袱,就是從level0文件開(kāi)始查詢(xún)的,也就是最新的文件悠瞬。
value為這個(gè)sst文件的TableAndFile結(jié)構(gòu)體指針们豌,然后這個(gè)TableAndFile是由RandomAccessFile指針和Table指針組成。所以這個(gè)緩存有點(diǎn)類(lèi)似Linux內(nèi)核中的inode浅妆,由indoe就可以獲取磁盤(pán)的data block望迎。
Key Code:
field members
FindTable(
The time to add the Table to table_cache:??BuildTable( 函數(shù)
Chinese Comments and Analysis, please see: https://github.com/cld378632668/leveldb_chinese_comments/tree/master/table
An interesting and worth studying point:
注冊(cè)回調(diào)函數(shù)。
在Table_cache中插入數(shù)據(jù)時(shí)凌外,也注冊(cè)了這個(gè)handle被刪除時(shí)執(zhí)行的回調(diào)函數(shù):LRUCache::Erase辩尊。
在Table_cache中插入數(shù)據(jù)時(shí),也注冊(cè)了這個(gè)handle被刪除時(shí)執(zhí)行的回調(diào)函數(shù)康辑。我來(lái)分析下摄欲,我覺(jué)得挺有意思的。首先來(lái)看下cache.cc里面handle刪除函數(shù)?http://luodw.cc/2015/10/25/leveldb-13/
Recommended Reference
http://luodw.cc/2015/10/25/leveldb-13/