Cache::KyotoTycoon released
http://search.cpan.org/dist/Cache-KyotoTycoon/
KyotoTycoon の Perl 用クライアントライブラリをだしました。
- straight forward
- simple
- less dependencies
- stability
といったところを重視してつくってあります。
TSVRPC::Client も同梱してあり、基本的にこれを利用してアクセスするようになっています。KT 仕様の TSVRPC を採用するアプリが他にもでるようなら、別 dist にわけます。今は管理の都合上、一つの dist で配布した方が楽なのでそうしています。わけてほしい人がいたらいってください。
Cache::KyotoTycoon は HTTP based protocol を採用していますので、HTTP client library を使う必要がありましたが、ここでは WWW::Curl 経由で libcurl を利用しています。なぜならば、LWP は遅いから。通常の利用では、インターフェースがつかいやすい LWP をつかった方が得策なのですが、今回の場合、HTTP アクセスは内部の処理なので、インターフェースよりも速度を優先しました。LWP をつかうと数倍おそいです。
速度面についてですが、同一ホスト内からの 1プロセスからのリクエストで 5000reqs/sec 以上でているので、よいのではないかとおもいます。
プロファイラによると libcurl の中での処理にほとんどの時間をとられているので、これ以上の速度をもとめるのであれば
- 特化型の高速な HTTP client library を XS でかく
- libcurl を直接よぶ XS をかく(libcurl の操作まわりを XS でやった方がおそらく高速)
といったあたりになるかとおもいます。個人的には、XS をかくのはあまりやる気がしませんが、誰かやりたい人がいれば patches welcome です。