
智能指針 C++11 引入了 3 個智能指針類型: std::unique_ptr<T> :獨占資源所有權的指針。 std::shared_pt...
Compaction 的作用 因為 LevelDB 的增刪改都是通過追加寫來實現的,所以需要通過后臺線程的 compaction 來: 清理過期...
Lambda 表達式(Lambda Expression)是 C++11 引入的一個“語法糖”,可以方便快捷地創建一個“函數對象”。 從 C++...
自動類型推導 現代的編程語言,不管是動態語言(JavaScript、Python 等),還是靜態語言(Go、Rust 等),大都支持自動類型推導...
右值引用(rvalue reference)是 C++11 為了實現移動語意(move semantic)和完美轉發(perfect forwa...
LevelDB 有兩個地方需要用到有序遍歷: 對外提供范圍查詢的接口(NewIterator)。 內部的 Compaction。 通過前面的文章...
LevelDB 提供三個和寫操作相關的接口: Put :插入/修改一條記錄。 Delete :刪除一條記錄。 Write :原子地插入/修改/刪...
LevelDB 支持的讀操作分為兩種: 點查詢(Point Query):讀一個 key 的數據。 范圍查詢(Range Query):有序讀一...
前文回顧 LevelDB 完全解析(0):基本原理和整體架構 LevelDB 完全解析(1):MemTable LevelDB 完全解析(2):...