squid2.6のCOSSの話

Squid2.6 のCOSSがいい感じという非常に興味深いエントリが出たので,ふれてみたい.


最初にお断りしておくが,実のところ私の中でもCOSS(とその根底にある事実と思想)に関していろいろ納得できないところがあって,十分には咀嚼しきれていない.
なので下記の内容は多少眉に唾して読んでもらって,間違っている所などがあれば指摘してもらえるとありがたい.


以前squid vs apacheというエントリでapacheとsquidの比較を行った結果のエントリを書いた.

詳細は上記エントリを読んでもらうとして,結論としてはsquidはapacheと比べて大規模配信には向かないというモノだ.


しかしこれは調査自体が3年も前でsquidも2.5の話だったので,もう実情とあってないかもなぁと思っていた.その一方squidも着々と進化をしていたようで,2.6からキャッシュオブジェクトの新しい格納方法であるCOSSがサポートされたようだ.


http://wiki.squid-cache.org/SquidFaq/CyclicObjectStorageSystem
によるとCOSSというのは「Cyclic Object Storage System」の略でシングルファイル上にユーザベースの独自ファイルシステムを構築してそこにキャッシュデータを配置し,データ配信しようというものだ.


かいつまんでいうとディスクの効率的な利用を行うために,適切なブロックサイズごとに実データ配置を行うことにより,ファイル位置の同定にかかるコストなどを稼いでいるというのがキモのようで,Squid2.6 のCOSSがいい感じによると実際に効果が出ているようだ.


COSSのユーザベースのファイルシステムを使うというアイディア自体は特に新しくはない.
Posixファイルシステム的な処理をかっ飛ばしたり,ファイルサイズが一定を超えないなどオレオレなルールと仮定を置くことにより,汎用のファイルシステムよりも速くできるし,そのほかにも例えばOracleがテーブル領域の作成という形で独自のデータ格納形式を準備していたり,ファイルシステム作成時のブロックサイズなどのパラメータチューニングなどはまさにこれと同じ発想に立っている.


このこと自体は問題ないんだけれども私が非常に疑問というか違和感を感じているのはそのパフォーマンスで,メモリに全部コンテンツを載せた時と比較しても遜色ないパフォーマンスが出ていそうということだ.


実際とあるシステムでは100GB程度の単一ファイルに数十万個程度のオブジェクトを載せてCOSSと似たような方式で配信していたのだが,特にパフォーマンス的な問題は起きていなかった.


その一方画像配信の負荷分散も比較的簡単?(その1)の一連のエントリで述べてきたVFSのバッファキャッシュに任せる方法だと,バッファキャッシュがあふれると極端にパフォーマンスが落ちていたという事実もあって,なぜCOSSのような方式でバッファキャッシュのサイズを超えるようなデータを保持/配信していても十分なパフォーマンスがでているのか自分としては納得できる説明が見いだせていない.


とはいえちゃんとパフォーマンスが出ているという事実はあって,そこは動かせない.
いろいろ考えた結果,100Mイーサは100Mbpsで,bpsはBitPerSecondの略で,12.5MByte/secということなので,
最近の速度の速くなったHDD+最適化されたユーザベースのファイルシステムならばメモリに全部のデータが載ってなくても100Mイーサの実行速度(60〜70M)程度のパフォーマンスは出るのかな.という結論で自分を無理矢理納得させた.


ただこの説明はいかにも後付けで,自分で言うのもなんだが,実にウソくさい.
なので,もしどなたかなにかヒントになることがあったらぜひ教えてもらいたい.

(つづく。。。かもしれない)

(概ね納得できたので,続きます.)

yamaz的日常

ぴろ日記のぴろさんとCOSSについて話してたときの会話.

yamaz : 実のところ2G超えるようなファイルを日常では扱ってないから感覚がよくわからないんですよね。
piro : 実のところ2Gに満たないようなファイルを日常では扱っていないから感覚がよくわからないw

さすがはぴろさん.日本でもトップクラスのデータ量を日々扱ってるだけある.

yamaz的日常(その2)

渋谷の東急本店で日本橋木屋の研ぎ師の方が実演されていたので,
我が家の包丁も研いでもらった.

江東区から渋谷まで包丁を新聞でグルグル巻きにして運んだんだけど,
今の私はヒゲ面で電車の中では考え事とかしたりして,どうひいき目に
見てもあやしさ満点だ.なので万一にも電車内で落とすようなことはあってはならんと非常にドキドキした.

yamaz的日常(その3)

最近運動不足だと奥さんに非難されたので,一緒に夜の散歩をした.
門前仲町から出発して月島→豊洲→門前仲町とぐるっと回ったんだけど,月島、豊洲とも思いのほか近く,門前仲町から歩いて30分くらいで行けることがわかった.
月島はもんじゃ屋さんがこれでもかというぐらいあってちょっとびっくり.