2012-02-01から1ヶ月間の記事一覧

A simple and efficient implementation for small databases

chubbyの下回りのDBは、この論文https://ng.gnunet.org/sites/default/files/024-DatabasesPaper.pdfをもとにして作成したらしい。読んでみてのメモ。オペレーティングシステムや分散システムで出てくるような小さいデータベースの実装について述べる。とて…

Pager.c を読んでみる (1)

SQLiteの内部を見てみたときのメモというエントリ。SQLiteは、コメントが充実していて凄いと思う。手始めに、ロールバックやアトミックな書き込みを提供しているということなので、Pager.cから始めてみる。 ** OPEN <------+------+ ** | | | ** V | | ** +-…

chubby

いまさらながら、読んでみてのメモ。信頼性と可用性が命、ファイルシステムっぽい使いやすいセマンティクスの提供、性能と格納可能容量は二の次。advisoryロックとファイルを全部読み書きするのと、ファイルの変更をお知らせする機能を提供。同期処理に利用…

valgrindで、VG_N_SEGMENTが出たとき

valgrindで、VG_N_SEGMENT発生した場合には、VG_N_SEGMENTSを大きくして、再ビルドという方針しかない模様。でも、実際あげるとなると数値を選ばないといけない、ので、valgrindのソースから意味合いをちょっと推測してみる。(このエントリに書いてある情報…

callgrind+Kcachegrind

Ryoの開発日記 valgrindは、知っていたけど、ビジュアル化するツールは知らなかった。見た目がすごい。ということで、macに入るか探してみる。 http://www.typofree.org/article/archive/2009/august/title/installing-kcachegrind-on-osx/:title に、っぽい…

CassandraとHBaseの比較の資料

HintedHandoffというのがなんなのかを探してたら、見つけた資料。CassandraとHBaseの比較をして入門するNoSQLとても分かりやすくて、良い資料だと思います。HintedHandoffは、可用性を極限まで高めるために、一貫性の保証をかなり排除した仕組み。更新するべ…

2フェーズコミット続き

http://d.hatena.ne.jp/kuangue/20120220/1329664239:2フェーズコミットエントリの続き、2フェーズコミットやredo/undoログの勉強メモ。 入れ子型2フェーズコミット 2フェーズコミットには、多くの最適化された手法が提案されている。2フェーズコミット…

The Architecture Of SQLite

SQLiteのソースを見る前に、読んどいたほうが良さそうなドキュメントを読んでおく。 はじめに このドキュメントは、SQLiteのアーキテクチャを記述したものである。SQLiteの内部を理解し、修正したい人のためのドキュメントである。右にある図には、メインコ…

OLTP Through the Looking Glass, and What We Found There

http://nms.csail.mit.edu/~stavros/pubs/OLTP_sigmod08.pdf をちょこっと読んでの感想とか、メモとか。 最初のまとめ そもそも、OLTPを取り巻く環境はかなり変わっているのに、DBのアーキテクチャは変わってない。新しいデバイスに合わせて、主要コンポーネ…

2フェーズコミットの勉強

なんだかんだで、2フェーズコミットを実装したことがなくて、なんとなく分かっている状態なので、 J. Gray, Operating Systems, an Advanced Course, Bayer et. al. eds., Lecture notes in Computer Science 60, Springer-Verlag, 1978, pp. 393-481. の 5…

遺伝子

ほんまでっかTVで、遺伝子が欲している場合にはいい匂いがするといっていたが、 遺伝子アルゴリズムでそういったものは表現できないのかな。近い場合には、くさくて、遠い場合には、いい匂い。 何らかの距離関数で表すことができる気がするが、距離関数とい…

Using Paxos to Build a Scalable, Consistent, and Highly Available Datastore

このエントリは、読んだことを思い出すための備忘録。 Intro. 既存のデータベースだと、手作業でテーブルを水平分割し、レプリケーションをmaster-slaveで実現している。 マスタスレーブの限界とPaxos 既存のデータベースでは、全ての更新処理をmasterに集め…

SQLiteのお勉強

SQLiteを使うというよりは、つくる方に興味があって、特にトランザクション周りの勉強をしたいなと思ったので、gdbでステップ実行をしてみることにした。mac osxでは、なぜか、かなり早い段階で Single stepping until exit from function dyld_stub_pthread…

PNUTS: Yahoo!'s Hosted Data Serving Platform の Architecture

せっかく、ちょっと読んだので、アーキテクチャも見ておこう。論文のFigure1をみてね。 アーキテクチャ システムは、regionという単位に分割される。regionは、各テーブルの完全なコピーを持ってる。各regionは、地理的に離れている方がよい(というかそうい…

PNUTS: Yahoo!'s Hosted Data Serving Platform の Timeline Consistency

ちょっと、J. Rao,E. J. Shekita, S. Tata"Using Paxos to Build a Scalable, Consistent, and Highly Available Datastore," VLDB(2011).というのを呼んでいたら、Timeline Consistencyなるものを発見した。うーん、Eventual Consistencyは聴いたことあるけ…

levelDB implementation notes を読んでみた

The implementation of leveldb is similar in spirit to the representation of a single Bigtable tablet (section 5.3). という最初の一文に惹かれて、以下のページを読んでみました。implementation notesをテキトーに訳してみます。大分前に、やろうと…

install

Bloom のメーリングリストに、maceへのリンクがあり、ちょっと見たところかなり興味深いので、調べてみることにする。mace installation page svn でソースを取得、記述されているように、cmake->ccmake->makeでビルド。ccmake の段階で、hdfs.hが無いと起こ…

mac osx 上に あるcents6.2 のカーネルをあげた場合、guest additionsを行う。

virtual boxのguest additionsを実行した場合、kernel modulesのインストールをしているよう。 で、yum update でカーネルのバージョンをあげてしまうと、それに対するkernel modulesを 再インストールしてあげないと、マウスのシームレス機能が使えない。