memcachedは便利なキャッシュ機能を持っているが、サービスが落ちるとデータが全て消失する点で使い勝手が悪い場合があった(良い場合もある)。基本的には消失しても良いデータだけしか入れられないという認識の元で利用するのだが、実際にサービスがダウンすると、負荷が急上昇しサービスのレベルが大幅に落ちてしまう。

ピクチャ 1.png

起動した画面。レプリケーションの接続を待っている

 

さらにmemcachedを多用すると、パフォーマンスが鈍ってくることもあるだろう。そこで、memcachedをさらに活用していくためにこれを使おう。

今回紹介するオープンソース・ソフトウェアはrepcached、レプリケーションに対応したmemcachedだ。

repcachedはKLab株式会社で開発されたソフトウェアで、memcachedをベースにレプリケーション機能を追加したものだ。これにより負荷を分散させる効果、冗長性を持たせることでサービスの信頼性を高める効果が望めるようになる。

バージョン2.0によって、マルチタスク構成がサポートされた。これはマスタ/スレーブの構成だった1.2系では接続先のサーバがマスタなのか否かによって書き込みを判断する必要があったが、それが不要になり通常のmemcached同様に扱えるようになった。

データの同期は非同期で行われるが、memcachedのクライアントライブラリ側の処理によって、接続先が固定化されるため、問題は生じないだろうとのこと。さらにサーバが復旧した後は自動でデータをコピーし、その間は接続を許可しないので整合性が崩れることはない。

memcachedを二台構成にしている場合はもちろん、サービス停止時の問題で導入に踏み切れなかったケースも含めてmemcachedの新しい利用法が見えてくるのではないだろうか。サービスの高速性を重視したい方は要チェックのソフトウェアだ。

 

lab.klab.org - Repcached

 http://lab.klab.org/modules/mediawiki/index.php/Repcached