Home > Software > Memcached

Memcached

最近は,WEB系の人達だけじゃなくてあちこちでmemcachedを使ってるって聞く(もちろん,はてなでもよく聞く)ので,ちょっと調べてみたら結構面白かった.

なにがって,memcached本体は,ハッシュ的なkey, valueペアでデータをキャッシュしておけるただのデーモンなのだけれど,クライアント側に複数(サーバ)のmemcachedを教えておくと自動的にkeyのハッシュ値からデータを分散させて保存できたりするところ.本体に手を加えなくてもクライアント側で,機能拡張できるモデルっていうのは面白いなーと思った.

最近のクライアントの主流らしいlibmemcachedでは,Consistent Hashingに基づいて分散させるって聞くので,じゃぁフェイルオーバーも容易...だと思ったんだけど,ちょっと遊んでみたところ,簡単にそういうことができるわけではないみたい.(まぁ,Consistent Hashingを最大限に生かそうとすると本体にも手を加えないといけないから期待してなかったけど)研究室の計算機数台にインストールしてmemcachedを分散させてつかってみたけど,一台落とすと,結果が返ってこなくなるだけじゃなくて,保存もできないキーがあったりした.しかもどのキーかは一見わからないし.(今回Cから直接叩いたんだけど,PHPとかのライブラリだとフェイルオーバーするらしい,ほんとに?)

常駐するサーバ的なアプリとかならクライアント側アプリが直接複数のmemcachedを知っていて管理するべきなんだけど,(データベースに持たせてるとデータベースが落ちるとダメだから)普通のCGIやPHPとかだと,セッション毎にメモリが解放されちゃって管理できないからlibmemcachedでは対応してないのかな.

ちなみにAmazonのDynamoとか,楽天が作ってるROMAとか,MSR AsiaのBitVaultとかもConsistent Hashingで,脱マスター・スレーブモデルが最近の流行みたい.

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://ma38su.org/2008/12/10/843/trackback/
Listed below are links to weblogs that reference
Memcached from ma38su.org

Home > Software > Memcached

Feed

feeds

Meta

Return to page top