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 guideleveldb是根據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...