MessagePackで圧縮をサポートして節電する!

7
最速配信研究会山崎大輔 制約理論及び待ち行列理論による技術経営コンサルとエンジニア起業相談やってます @yamaz

@frsyuki 中くらいの大きさのmsgpackのデータ(128Kくらい)を取り扱うケースがあるので、A案もあればいいな派 と思ったけどC案でもカバーできるか。

2011-03-24 02:31:12
Kazuki Ohta @kzk_mover

@yamaz うちも文書を扱ってるのでそんな感じです。RPCに関してはC案、データに関しては自前でブロック圧縮するのが一番いいかなと (msgpackで圧縮関数が容易されてると便利ですが)。

2011-03-24 02:32:48
Sadayuki Furuhashi @frsyuki

そうなんです。でもC案でカバー可能です。ただしアプリケーション側でヘッダを付けるとか、多少の工夫は必要。 RT @yamaz: @frsyuki 中くらいの大きさのmsgpackのデータ(128Kくらい)を取り扱うケースがあるので、A案もあればいいな派 と思ったけどC案でもカバー

2011-03-24 02:33:22
Sadayuki Furuhashi @frsyuki

ちょっとヒラメキ。「MessagePack圧縮ストリーム」という規格を新たに作る案。

2011-03-24 02:33:35
Sadayuki Furuhashi @frsyuki

RPC層には「TCP MessagePack圧縮ストリームトランスポート」とか「UDP MessagePack圧縮ストリームトランスポート」を実装する。

2011-03-24 02:34:26
Sadayuki Furuhashi @frsyuki

実装はDEFLATEに対するgzipのようなもの。圧縮アルゴリズムを宣言したヘッダを付けて、後ろに圧縮ストリームを付ける。

2011-03-24 02:35:25
最速配信研究会山崎大輔 制約理論及び待ち行列理論による技術経営コンサルとエンジニア起業相談やってます @yamaz

@kzk_mover どこも似たようなことしてますねw 言語側のデータに変換する際のmallocが恨めしい昨今ですよ…

2011-03-24 02:38:22
Kazuki Ohta @kzk_mover

@frsyuki B案のプロトコルに載せて、トランスポートを切り替えるのとどう違うんだろ?

2011-03-24 02:38:31
Sadayuki Furuhashi @frsyuki

.@kzk_mover B案はHTTPSのUpgradeのようなイメージでした。普通に圧縮なしで通信を開始して、何らかのメッセージの次から圧縮アリに切り替える方法。MessagePack-RPCのコードに変更が必要です。

2011-03-24 02:41:44
Sadayuki Furuhashi @frsyuki

これだと相手が圧縮をサポートしていなかったときに圧縮なしにフォールバック可能。ぁ…C案でもできなくはな…?

2011-03-24 02:43:11
Sadayuki Furuhashi @frsyuki

s/HTTPSのUpgrade/HTTPのUpgrade/。別にHTTPSはupgradeしないんでした…。と言うかHTTPでUpgradeが使われるのってどんなときだっけかな。

2011-03-24 02:47:03
Sadayuki Furuhashi @frsyuki

ストリームにヘッダを付ける利点は、ヘッダで圧縮ナシと宣言されていたら、後続のデータは圧縮なしになる点。圧縮なしのストリームの実装はヘッダを付けるだけなので簡単。圧縮なしのストリームしかサポートしていないクライアントと、圧縮をサポートしたサーバは通信可能。

2011-03-24 02:52:08