Entries from 2008-01-01 to 1 month

php のいいところ

まず、なんと言ってもメモリ使用量が小さい。mod_php で構造化されたウェブアプリケーション書いてても httpd 1プロセスあたりの使用メモリ量が 10M 以下だったりする。それに速い。ウェブアプリを書くために特化したグルー言語には、それなりの良さがある…

ウェブアプリケーションと動的再構成と djbdns

Pathtraq の (少なくとも一部) は設定ファイルにテストコードがついている。あと、動的再構成をサポートしている。でも今日あらためてその辺を見ていると optimal じゃない。やっぱり djbdns のやり方が最高やね。 設定ファイル本体は高速にアクセス可能なバ…

Q4M の Pathtraq 投入が近づいてきた予感

とりあえず、取りこぼしのないことが保証できる Q4M 間転送プログラムを作らないと。

MySQL (InnoDB) のウォームアップと innodb_file_per_table のベンチマーク

今サーバの MySQL をバージョンアップしてウォームアップ中なわけだけど、Kazuho@Cybozu Labs: MySQL のウォームアップ (InnoDB編) の件について、innodb_file_per_table を設定しておけば、ウォームアップ時に全体としてメモリ容量の半分を超えるインデック…

Q4M リリース後、もろもろ

order by 関連のバグ修正 (rev. 63 でコミット) トランザクションのサポートは、やらぬが吉? 悩ましい。 http://lists.mysql.com/internals/35269 ストレージエンジンをまたぐトランザクションサポートは 5.1 から入ってるけどバグがあるかもよ (現状 innod…

Mac OS X の / は g+w されてるらしい

DOC_ROOT="http://example.com/foo/" (cd tmp && wget -r $DOC_ROOT) mv `echo -n $i | perl -pe 's|^http:/|tmp|'`/* docMakefile.am の中で上みたいなコードを書いてたんだけど、$i なんて変数は存在しない ($DOC_ROOT の間違い) ので、 mv /* docに展開さ…

Q4M のインデックス対応の話他

Re http://mt.endeworks.jp/d-6/2008/01/q4m-2.html でも dmaki さんの速度はさすがに遅すぎな気もする (自分のとこだと倍くらい) ディスクがいっぱいいっぱいなのかなw 60%満タン状態です。なんか自分の環境ではいくらやってもid:kazuhoさんのパフォーマン…

Q4M アナウンスするぉ

それまでに何をやるべきか... binlogs への対応 (フラグたてるだけのはず) ホームページの作成 バイナリビルドの作成 Linux (i386, x86-64) だけでいいかなぁ 他になにかあるかなぁ

Solaris 8 の libmtmalloc のバグ

Problem Description: 4464080 libmtmalloc's realloc() can return an already freed pointer http://sunsolve.sun.com/search/document.do?assetkey=1-21-111308-05-1&searchclause=libmtmalloc バグが修正されたのは OS リリースから丸4年以上経過した20…

Mac OS X の pthread_cond_destroy でハマった

Mac OS だと、 Thread A: pthread_cond_wait(cond, &mutex); while ((err = pthread_cond_destroy(cond)) != 0) { assert(err == EBUSY); usleep(1); } free(cond); Thread B: // mutex is not locked pthread_cond_signal(cond);みたいなコードで、pthread_…

Q4M のベンチマークと設計

Re: http://mt.endeworks.jp/d-6/2008/01/q4m-1.html dmaki さんありがとうございます。 やっぱり Mac OS X の F_FULLFSYNC は遅いなぁ 同期方法をバイナリ配布版の InnoDB の手法に合わせるかな ソース版はデフォルトだと fsync でも dmaki さんの速度はさ…

Q4M の ToDo

とりあえず Mac OS X (x86) と Solaris (SPARC) でテストを通る。Linux は明日会社で試す。グループコミットも実装したし、あとやるべきことは以下くらいか。 削除を別ファイルでジャーナリング 複数行の削除がアトミックにできる たぶん遅くはならない (一…

Q4M rev. 39 のベンチマーク

インデックスとかないし追記型のアーキテクチャだから勝って当然だけど、やっぱりうれしい。 [kazuho@KazMac:~/dev/q4m]$ ../mysql-5.1.22-rc/bin/mysqlslap -S /tmp/mysql51.sock --concurrency=50 --iterations=10 --engine=myisam,innodb,heap,queue --au…

readv / writev の iovcnt

iovcnt の数には上限があって、Solaris だと 16 以下らしい。IOV_MAX つー定数がある。知らなかったorz ちなみに Mac OS X は 1024。Linux は知らない。

Linux の NCQ/TCQ サポートと I/O スケジューラ

年末年始は使える linux マシンが1台もないわけですが。調査だけ。まずは事実から。 sata ドライバが NCQ 対応してる http://linux-ata.org/driver-status.html scsi ドライバの TCQ サポートは昔からっぽい kernel-2.6 の I/O スケジューラは4種類 最近の…

InnoDB の sync (Mac OS X)

configure 時に CFLAGS=-DHAVE_DARWIN_THREADS -CXXFLAGS=-DHAVE_DARWIN_THREADS してやらないと fcntl(F_FULLFSYNC) を呼び出さないらしい。ちなみに Mac OS X の fsync および F_FULLFSYNC の動作については、man 2 fsync に以下のとおり書いてある。 For …

Q4M - 昨日からグループコミット実装中

まだ svn にはコミットしてないけど、コンパクションのコード以外は動いてる。手元の MacBook だと、キューへのインサートが 100 メッセージ毎の場合、 リスナー数 転送メッセージ数 所要時間 スループット 1 500 28.53 sec. 17.5 mess/sec. 32 16,000 29.64…