38
SKSの申し子 @repeatedly
LevelDBというのが公開されたらしい.自動でSnappyとかGoogleっぽさが滲み出ている > http://code.google.com/p/leveldb/
SKSの申し子 @repeatedly
とりあえず時間があったらLevelDB試す事にして寝るか
SKSの申し子 @repeatedly
ん?LevelDBってPutでWAL使ってるのか?
SKSの申し子 @repeatedly
あ,WAL使ってなかった.しかしどうやって非同期になってんだ?普通にmemcpyとかしてるようにしか見えんが…
SKSの申し子 @repeatedly
むー,LevelDBそのものにはあまり惹かれるものはないなぁ…
Kazuki Ohta @kzk_mover
leveldb は sstable (log-structured merge tree) の実装に見える
よう@求職中 @yoh_okuno
@kzk_mover ドキュメントにもそう書いてありますねー http://j.mp/lGoluD
よう@求職中 @yoh_okuno
LevelDBはC++0xで書かれている…だと…?
SKSの申し子 @repeatedly
@nokuno なんと.昨日ソース読んでた時には気づきませんでした
よう@求職中 @yoh_okuno
@repeatedly Makefile見るに全部ですね。std::atomicが使われていたので気づきました http://code.google.com/p/leveldb/source/browse/trunk/Makefile
Sadayuki Furuhashi @frsyuki
Google的にはC++0xはもうOKなのかな。
SKSの申し子 @repeatedly
@frsyuki Googleさん別にどこかに製品提供するわけじゃないし,自社サービスならなんも問題ない気がする
Sadayuki Furuhashi @frsyuki
LevelDB を std:: でgrepしてみたけども、使っているのは std::atomic と std::memory_order_acquire くらい。あと unordered_{map,set} か。
SKSの申し子 @repeatedly
@frsyuki ロックしたくない!という強烈な意志表示がうかがえる
Sadayuki Furuhashi @frsyuki
一応標準化はされているけども、どちらかと言うとコンパイラの独自機能として使っているという印象。あと \<__ でgrepすると、defined(__clang__) が出てくる。
Sadayuki Furuhashi @frsyuki
環境依存のコードが port/ に色々入っていて、std::atomic を使っているのは port/prot_posix.h だけ。gcc なら問題ないでしょう的な印象。あと面白そうなのは db/skiplist.h db/memtable.h とか。
SKSの申し子 @repeatedly
@frsyuki GoogleさんのSSTableの疑惑があるから,色々入ってそう
Sadayuki Furuhashi @frsyuki
@repeatedly 見た目sstableですね。wal+memtable。
Sadayuki Furuhashi @frsyuki
std::atomic は SkipList を実装する為だけに使っているらしい。memtable が lock free の SkipList なのか。SkipList<Key, Comparator>。これだけでも便利そうだなぁ。
汎用kumAGI @kumagi
levelDBあっさりコンパイル通って驚愕した。ターミナルに燦然と輝く-std=c++0xの文字。
汎用kumAGI @kumagi
deleteだのdefaultだのじゃなくてDISALLOW_COPY_AND_ASSIGN(CondVar);というマクロを使ってるのはコンパイラがまだ対応してないからか
汎用kumAGI @kumagi
levelDBのskiplistにremoveっぽいものがなくて、insertとcontainsしかないんだけど…。
残りを読む(106)

コメント

コメントがまだありません。感想を最初に伝えてみませんか?

ログインして広告を非表示にする
ログインして広告を非表示にする