Entries from 2007-09-01 to 1 month

KeyedMutex の wishlist

プロトコル: プロトコルバージョン try_lock (ロックできなかったら immediate return) の追加 サーバ側: データ構造の最適化 (key の簡易 hash と state を合体させて独自の short array に) クライアント側 auto_reconnect 機能 TCP_NODELAY

Thundering Herd の件

from linux and SINGLE_LISTEN_UNSERIALIZED_ACCEPT. おもしろい。以下引用。 ---------- Forwarded message ---------- To: linux-kernel@vger.kernel.org From: Linus Torvalds <torvalds@transmeta.com> Subject: Re: [PATCH] Re: Negative scalability by removal of lock_kernel</torvalds@transmeta.com>…

Socket の Thundering Hird

ただ、私の記憶が正しければ、1プロセスしか accept に成功しないにもかかわらず全プロセスがwakeされる (=全ての accept がなんらかの結果 (ほとんどの場合 EAGAIN) を返す) というのが、Thundering Herd の最大の問題だったはずです Kazuho@Cybozu Labs:…

SQL リクエストを束ねる方法

・バックエンドへの同一リクエストを束ねるような仕組みを実装する Kazuho@Cybozu Labs: キャッシュシステムの Thundering Herd 問題 これを考え中。nfslockd みたいな形で実装 (ただし、ロックがただちに獲得できたのか、ロックが解除されたのかを通知する…

SQL のお勉強 - 型の自動変換と等価性について

mysql> select * from (select '' as t) as t1 where t=0; +---+ | t | +---+ | | +---+ 1 row in set (0.00 sec) mysql> select * from (select '' as t) as t1 where t='0'; Empty set (0.00 sec)

swifty の PowerPC と SPARC サポート

追加してみました。コンパイルすらしていなくて恐縮ですが、興味のある方はお試しいただければ。ダウンロードはこちらです。

最速ファイルコピー

Kazuho@Cybozu Labs: システムコールの最適化の余談だけど、http://kzk9.net/column/unixfastestfilecopy.htmlを見ていると、やはり mmap(2) 経由だと余計なスワップ処理が発生して遅くなることがあるのがわかる。何を期待するかにもよるけど、バッファキャ…

technoratiに登録

テクノラティプロフィール

PowerPC なんてイーヤーイーヤーヨー

PowerPC で swifty 動かないのって聞かれて、これは憧れのイーヤーイーヤーヨー命令 (eieio = enforce in-order input/output だっけ?) を使う機会かと喜びいさんだのだが違ったみたい。IBM - Japan によると、lwsync を使うのが正解 (lwsync が無い場合は s…

x86 (!AMD64) の64bitアトミックロード

movq xm0, ptr [addr]; movd eax, xm0; psrldq xm0, 4; // xm0 >>= 32; movd edx, xm0; というパターンを同僚に教えてもらった。勉強になります。 Yes, I see that in Volume 3, the System Programming Guide, on page 7-3, section 7.1.1, "Guaranteed Ato…

続PerlをCで書き換えるだけ (ry

OOインターフェイスで Cache::FastMmap の10倍超えた。そろそろ pathtraq.com への導入にむけた機能追加する。 $ make && perl -Iblib/lib -Iblib/arch -Ilib benchmark/all.pl 500 Cache::FastMmap Cache::Swifty swifty_direct Write (16 bytes): Rate Cac…

perlのラッパーをCに書き換えるだけの簡単なお仕事です

また速くなった。しかしめんどくさい。 $ make && perl -Iblib/lib -Iblib/arch -Ilib benchmark/all.pl Write (16 bytes): Rate Cache::FastMmap Cache::Swifty swifty_direct Cache::FastMmap 8.92/s -- -92% -94% Cache::Swifty 106/s 1093% -- -24% swif…

swiftyの設計について

swiftyは、リードについてはロックフリーの共有メモリキャッシュなので、プロセス内のメモリとほぼ変わらない速度で読み込みが可能です (ライトは flock & funlock が1回発生します)。 キャッシュはリードが卓越するものだし、だったらプロセス内メモリと同…

swiftyを作った理由

ぶっちゃけ、 The official recommendation is now to use FileCache instead of SharedMemoryCache. The reasons for this include:1) FileCache provides equal or better performance in all cases that we've been able to test. This is due to all mod…

Perlのオーバーヘッドが大きい件

$ make && perl -Iblib/lib -Iblib/arch -Ilib benchmark/all.pl Write (16 bytes): Rate Cache::FastMmap Cache::Swifty swifty_direct Cache::FastMmap 8.95/s -- -91% -93% Cache::Swifty 94.3/s 954% -- -26% swifty_direct 128/s 1329% 36% -- Read (16…

メモリ増設に失敗中

Pathtraq は DELL PowerEdge SC1435 で動かしてるんだけど、買ってきたメモリの増設に失敗中。2GB x 4枚買ってきたんだけど、うち1枚が faulty て言われる。お店に言ったらすぐに代替品を送ってくれたんだけど (USER'S SIDE++) 、それを挿すとメモリバス全…

Swiftyのお風呂メモ

re: Kazuho at Work: Swifty-0.02 and Perl Binding 書き込み時flockは、書き込み中にプロセスが死んだ場合に検知するため userland mutex も選択できるようにするといいかも (wait(2) で検知とかもできるし) データ書き込み後、atomic に commit されるまで…