LevelDB原始碼分析 第一印象

2021-06-28 15:20:46 字數 1065 閱讀 8380

leveldb是google開源的nosql資料庫,被很多人推薦,因為良好的c++**格式,咱們試圖來分析一下吧

leveldb::db

* db;

leveldb::options options;

options.create_if_missing =

true;

leveldb::status status = leveldb::db

::open(options,"/tmp/testdb",&db);

assert(status.ok());

status = db->put(leveldb::writeoptions(),"name","phgame");

assert(status.ok());

status = db->get(leveldb::readoptions(),"name",&value);

assert(status.ok());

leveldb::readoptions readoptions;

readoptions.snapshot = db->getsnapshot();

leveldb::iterator

* itor = db->newiterator(readoptions);

for(iter->seektofirst();iter->valid();iter->next()){

std::out

" :"

db->releasesnapshot(readoptions.snapshot);

delete db;

上面的**包含了基本用法,包括開啟,關閉,寫入,讀出,snapshot,iterator,等基本操作,可以看到google的命名規則.

google c++ style guide

leveldb是根據big table的思想來做的,所以咱們還需要理解一下bigtable是怎麼回事,當然我也不懂..慢慢來吧

leveldb原始碼分析1

leveldb是乙個key value型的儲存引擎,由google開發,並宣布在bsd許可下開放源 plain git clone plain cd leveldb make all 此時生成libleveldb.a庫檔案。拷貝leveldb的標頭檔案到 usr include下 plain cp ...

levelDB原始碼分析 SSTable

sstable是bigtable中至關重要的一塊,對於leveldb來說也是如此,對leveldb的sstable實現細節的了解也有助於了解bigtable中一些實現細節。本節內容主要講述sstable的靜態布局結構,sstable檔案形成了不同level的層級結構,至於這個層級結構是如何形成的我們...

Leveldb原始碼分析 1

前言 看了一點oceanbase,沒有意志力繼續堅持下去了,暫時就此中斷,基本上算把master看完了,比較重要的update server和merge server 卻沒有細看。中間又陸續研究了hadoop的原始碼,主要是name node和寫入pipeline。主要的目的是想看看name nod...