@frsyuki 中くらいの大きさのmsgpackのデータ(128Kくらい)を取り扱うケースがあるので、A案もあればいいな派 と思ったけどC案でもカバーできるか。
2011-03-24 02:31:12@yamaz うちも文書を扱ってるのでそんな感じです。RPCに関してはC案、データに関しては自前でブロック圧縮するのが一番いいかなと (msgpackで圧縮関数が容易されてると便利ですが)。
2011-03-24 02:32:48そうなんです。でもC案でカバー可能です。ただしアプリケーション側でヘッダを付けるとか、多少の工夫は必要。 RT @yamaz: @frsyuki 中くらいの大きさのmsgpackのデータ(128Kくらい)を取り扱うケースがあるので、A案もあればいいな派 と思ったけどC案でもカバー
2011-03-24 02:33:22RPC層には「TCP MessagePack圧縮ストリームトランスポート」とか「UDP MessagePack圧縮ストリームトランスポート」を実装する。
2011-03-24 02:34:26実装はDEFLATEに対するgzipのようなもの。圧縮アルゴリズムを宣言したヘッダを付けて、後ろに圧縮ストリームを付ける。
2011-03-24 02:35:25@kzk_mover どこも似たようなことしてますねw 言語側のデータに変換する際のmallocが恨めしい昨今ですよ…
2011-03-24 02:38:22.@kzk_mover B案はHTTPSのUpgradeのようなイメージでした。普通に圧縮なしで通信を開始して、何らかのメッセージの次から圧縮アリに切り替える方法。MessagePack-RPCのコードに変更が必要です。
2011-03-24 02:41:44これだと相手が圧縮をサポートしていなかったときに圧縮なしにフォールバック可能。ぁ…C案でもできなくはな…?
2011-03-24 02:43:11s/HTTPSのUpgrade/HTTPのUpgrade/。別にHTTPSはupgradeしないんでした…。と言うかHTTPでUpgradeが使われるのってどんなときだっけかな。
2011-03-24 02:47:03ストリームにヘッダを付ける利点は、ヘッダで圧縮ナシと宣言されていたら、後続のデータは圧縮なしになる点。圧縮なしのストリームの実装はヘッダを付けるだけなので簡単。圧縮なしのストリームしかサポートしていないクライアントと、圧縮をサポートしたサーバは通信可能。
2011-03-24 02:52:08