正当な起動手順

8 views
Skip to first unread message

chikaram

unread,
Feb 16, 2010, 10:24:36 AM2/16/10
to roma-user-japan
こんにちは
初めて投稿します三宅と申します。


かなり初歩的なことで大変恐縮なんですが、
正当な起動手順が分かりません。
--enabled_repeathostオプションを利用して、とりあえず
単一のサーバーで起動する方法は、検索するとたくさん
出てくるのですが、複数台の場合の起動手順が、
なかなか見つかりませんでした。

そこで、
1. 適当なサーバーで、mkrouteを実行
2. *.routeファイルを各ノードとなるサーバーにscpで配布
※各サーバーでmkrouteを実行すると*.routeファイルの内容に
食い違いがあったため。
3. romadを実行
としました。
こちらで問題なかったでしょうか?


今回、PHPのMemcacheライブラリーからromadのポートに
直接接続しましたが、これは問題ないでしょうか?
Ruby/Javaにはクラアントライブラリーがありますが、
これらを使う場合とどのような差があるのでしょうか?

なお、以下のようなプロジェクトで利用する予定です。
・PHP(3000万PV/月)
・Java(3億PV/月)
・PHP(5億PV/月)
※他にもMySQL Cluster、kumofs、MongoDB等検討中です。


以下は、先日、社内勉強会で利用した資料です。ご参考まで。
http://204.232.205.21/roma/


何卒、よろしくお願いいたします。

jun

unread,
Feb 16, 2010, 9:10:57 PM2/16/10
to roma-user-japan
三宅さん

はじめまして鳥居です。

複数サーバの起動方法は三宅さんの行った手順で間違えございません。

mkroute の作る *.route ファイルはルーティング情報と呼んでおり、
データをどのように配置するかを決定するものです。
配置はコマンド起動の度に乱数により決定され、複数できるファイルの
内容はすべて同じです。

ルーティングの名称は、この情報を使いデータの存在するサーバに対す
る経路を決定することに由来します。

したがいまして、mkroute は一度どこかで実行しファイルを
scp 等で配布するのが正当な手順になります。


PHP の memcached クライアントからの直接接続は問題ございません。

Ruby や Java の専用クライアントを使うメリットはルーティング機能にあります。

ROMA は複数のサーバから構成されデータが分散されます。
memcached クライアントを使った場合、任意のサーバに接続されますが、
そこにデータが存在するとは限りません。その場合 ROMA 内で
通信が転送されることとなりオーバーヘッドが発生します。

Ruby や Java の専用クライアントは ROMA に接続した時にルーティング
情報を取得しますので必ずデータの存在するサーバにアクセスすることができます。
例えば、障害が発生しルーティング情報が変更された場合、専用クライアントは
最新のルーティング情報を自動的に更新する仕組みになっています。
また、これらはコネクションをプールし接続のコストを軽減します。

以上よろしくお願いします。

鳥居 順次

chikaram

unread,
Feb 17, 2010, 8:07:56 AM2/17/10
to roma-user-japan
鳥居さん

ご回答ありがとうございます。
大変助かりました。
ROMAの概要が少し見えてきました。

本来ならソースコードがそこにあるわけなので、
解析する義務もあるのですが、Ruby門外漢のため、
このような質問に至りました。

もし、ROMAを実践で採用することになりましたら、
サービス名等明かしますね。

また、不明点があれば質問させていただくかもしれません。
では、今後ともよろしくお願いいたします。

Reply all
Reply to author
Forward
0 new messages