Rewriting Fastr in C
re Kazuho@Cybozu Labs: 高速なCometサーバを書いてみた件
C で書き直したら速くなるんだろうな。マルチスレッド化できるし。Opteron@1.4GHz で2,000クライアントなんだから C で書いたら Core 2 Quad @2.6GHz とかで10,000クライアント程度は余裕でいけたりするのかな。
自分だったら CPU の数程度のスレッド作って、accept(2) 時に file descriptor の剰余でどのスレッドに割り振るか決めるようにするかな。そうすればスレッド毎に独立に送受信処理やタイムアウト処理 (with ring buffer of bit arrays) を実行できる。あとは、メッセージの読み書きを lock-free にすべきかどうか、とか。
他の部分がそれで問題ないかは、もう覚えてないけど。