============================================================
Mac OS X(10.7.4) への LevelDBのインストール
============================================================
Date: 2012/05/20
Written by YAMAMOTO Naoki

MacBook Pro (CPU:Intel Core 2 Duo 2.26GHz, Memory:4GB)
Mac OS X 10.7.4 Lion (64-bit kernel)

□ ダウンロード

http://code.google.com/p/leveldb/ の Downloads から最新版をダウンロードします。
leveldb-1.4.0.tar.gz

□LevelDB のインストール

$ tar zxvf leveldb-1.4.0.tar.gz
$ cd leveldb-1.4.0
$ make

□テストプログラムの作成

LevelDBはライブラリとして提供されるので機能を呼び出すためのプログラムを作成します。
テストプログラムは "00000000"〜"00999999" のキーと値を100万回 put するプログラムです。

// put_leveldb.cc
#include 
#include 
#include "leveldb/db.h"

#define NUM_RECORDS 1000000

int main()
{

  leveldb::DB* db = NULL;
  leveldb::Options options;
  options.create_if_missing = true;
  leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
  assert(status.ok());

  char str[9];
  for (int i = 0; i < NUM_RECORDS; ++i) {
    sprintf(str, "%08d", i);

    leveldb::Slice key = str;
    std::string val = str;
    status = db->Put(leveldb::WriteOptions(), key, val);
    if (! status.ok()) {
      std::cout<<status.ToString()<<std::endl;
      break;
    }
  }
  delete db;
  return 0;
}

$ g++ -o putdb -O2 -lpthread -I../include ../libleveldb.a put_leveldb.cc
$ ./putdb

□ ベンチマーク

テストプログラムのベンチマークを参考値として掲載しておきます。
※ LevelDB はデフォルトの状態で使用しています。

$ time ./putdb

real    0m4.538s
user    0m3.931s
sys     0m0.204s