智能指針 C++11 引入了 3 個(gè)智能指針類型: std::unique_ptr<T> :獨(dú)占資源所有權(quán)的指針井厌。 std::shared_pt...
Compaction 的作用 因?yàn)?LevelDB 的增刪改都是通過(guò)追加寫(xiě)來(lái)實(shí)現(xiàn)的,所以需要通過(guò)后臺(tái)線程的 compaction 來(lái): 清理過(guò)期...
Lambda 表達(dá)式(Lambda Expression)是 C++11 引入的一個(gè)“語(yǔ)法糖”致讥,可以方便快捷地創(chuàng)建一個(gè)“函數(shù)對(duì)象”旗笔。 從 C++...
自動(dòng)類型推導(dǎo) 現(xiàn)代的編程語(yǔ)言拄踪,不管是動(dòng)態(tài)語(yǔ)言(JavaScript蝇恶、Python 等),還是靜態(tài)語(yǔ)言(Go惶桐、Rust 等)撮弧,大都支持自動(dòng)類型推導(dǎo)...
右值引用(rvalue reference)是 C++11 為了實(shí)現(xiàn)移動(dòng)語(yǔ)意(move semantic)和完美轉(zhuǎn)發(fā)(perfect forwa...
LevelDB 有兩個(gè)地方需要用到有序遍歷: 對(duì)外提供范圍查詢的接口(NewIterator)。 內(nèi)部的 Compaction救恨。 通過(guò)前面的文章...
LevelDB 提供三個(gè)和寫(xiě)操作相關(guān)的接口: Put :插入/修改一條記錄贸辈。 Delete :刪除一條記錄。 Write :原子地插入/修改/刪...
LevelDB 支持的讀操作分為兩種: 點(diǎn)查詢(Point Query):讀一個(gè) key 的數(shù)據(jù)肠槽。 范圍查詢(Range Query):有序讀一...
前文回顧 LevelDB 完全解析(0):基本原理和整體架構(gòu) LevelDB 完全解析(1):MemTable LevelDB 完全解析(2):...