A案のデメリットは、オブジェクト単位でエントロピー圧縮するので、圧縮率が低くなる点。小さいオブジェクトをチマチマ圧縮してもオーバーヘッドが大きいだけ。TCPでメッセージをやりとりするケースとか、似たオブジェクトがズラーっと続いている場合、ストリーム全体を圧縮した方が圧縮率が高い。
2011-03-24 02:15:58@frsyuki はいー Java 版の MessagePack-RPC には、いろいろ差せる機能があるので、そこをうまく使えると良いなと思いますよ
2011-03-24 02:16:31@kzk_mover そこだけチョロチョロっとC拡張呼ぶとかは簡単なので、ポータビリティの問題ですね。snappyはWindowsでも動くの?とか。
2011-03-24 02:18:09Bを飛ばしてC案のメリットは、ストリーム単位で圧縮できるので圧縮率が高い点。それから、現状のMessagePack-RPCのプラガブルな部分に新たなプラグインを加えるだけなので、後方互換性を保ったまま実装もしやすい。
2011-03-24 02:18:34@kuenishi なるほどー。MessagePack-RPC for C++は... 現状ではWindowsでは動かないみたいですw
2011-03-24 02:19:53C案のデメリットは、A案のメリットが無いことか。RPCに実装しても、RPCでしか圧縮使えない。アプリケーション毎に圧縮ストリームの実装が必要。ただこれはMessagePackのライブラリで便利APIとして圧縮出力をサポートすれば十分可能か。
2011-03-24 02:21:33Msgpack/Erlang should be as portable as erlang runtime, Msgpack-RPC/Erlang need not be portable, it seems enough supporting Linux and BSD.
2011-03-24 02:22:38B案のメリットは…なんだろう^^; C案だとTCPとUDPの両方で圧縮が使いたくなったら、2箇所で圧縮サポートを実装しないといけないところが、B案だと1箇所で済む点か。イマイチ感。
2011-03-24 02:22:49ぁB案はネゴシエーションが可能というメリットが。通信相手が圧縮をサポートしていなかったら圧縮なしにフォールバックするような。ただこれのサポートするのは実装がわりと面倒だし、ネゴシエーションに通信時間がかかるのは微妙というデメリット。
2011-03-24 02:27:26d_kami先生がとりあえずA案を実装して試してくれると聞いて RT @d_kami: Message PackのA案ってどれくらい圧縮できるんだろう?
2011-03-24 02:27:44@frsyuki サーバ・クライアントがサポートしているプロトコルの種類を教えられるようにしてもらえると、貧弱なライブラリでもおはなしができてうれしいかもしれません。
2011-03-24 02:28:00なるほど…なるほど。 RT @tanakh: @frsyuki サーバ・クライアントがサポートしているプロトコルの種類を教えられるようにしてもらえると、貧弱なライブラリでもおはなしができてうれしいかもしれません。
2011-03-24 02:28:45バージョンの話は早めにおいついておきたいな。IDLは…Erlang的にはbehaviourで十分で、うーんという感じ。余計なコードがほとんどないのであんまり嬉しくない。日付・時刻型はまあ書けばできるか。
2011-03-24 02:28:56C案を現状の仕組みの上にそのまま実装すると、圧縮をサポートしていないRPCクライアントのサポートは、いわゆる「運用で回避」という感じになるハズで、具体的には圧縮ありは 19800/tcp でlistenして、圧縮なしは 19801/tcp でlistenするような。
2011-03-24 02:30:31