Java Clientのハッシュ空間対応

6 views
Skip to first unread message

きくもと

unread,
Mar 2, 2010, 6:02:46 AM3/2/10
to roma-user-japan
きくもとです。

いつもお世話になります。
Java Client の挙動について気になる点があったので質問をさせてください。

ROMAではハッシュ空間を追加できるようになっていると思いますが、Java ク
ライアントから追加のハッシュ空間(ハッシュ名 roma 以外のハッシュ空間)に
アクセスしようとすると、現時点ではキーの指定を

キー + 0x1b + ハッシュ空間名

というようにせざるを得ないと思っています。
これでアクセスはできるのですが、Java クライアントが接続したノードから
forward が発生することがあります。
これは、RoutingTable から検索するときに利用するキーにハッシュ空間名が
含まれているからだと思います。
サーバ側や ruby client では、ハッシュ空間名を含まない形のキーから、対
象ノードを検索しているので、この点の相違のために Java Client で接続す
るノードが必ずしもそのキーを処理するノードになっていないのだと思いま
す。
この理解はあっていますでしょうか?

正解であれば、以下のような対処をしてみようと考えています。不正解なら
無視してください。

・Config に "hash_name" を設けて、RomaClientFactory#newRomaClient で
RomaClient を生成するときに、そのインスタンスにハッシュ空間名を設定
できるようにする。
・CommandContext に "HASH_NAME" を設けて、update や gets などの処理時
にコンテキストにハッシュ空間名を設定する。
・コマンド文字列生成時にハッシュ空間名を追加する。

この方針だとまずそうでしょうか?(やることは簡単そうですが、それなりに
対象範囲が広そうです)

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

muga

unread,
Mar 3, 2010, 12:11:30 AM3/3/10
to roma-user-japan
きくもとさん

ご連絡ありがとうございます。西澤無我です。

ROMA のハッシュ空間に関して、きくもとさんのご理解で正しいです。
ROMA の複数ハッシュ空間へのアクセスに対する機能は、現行の
Java Client にありません。

> ・Config に "hash_name" を設けて、RomaClientFactory#newRomaClient で
> RomaClient を生成するときに、そのインスタンスにハッシュ空間名を設定
> できるようにする。
> ・CommandContext に "HASH_NAME" を設けて、update や gets などの処理時
> にコンテキストにハッシュ空間名を設定する。
> ・コマンド文字列生成時にハッシュ空間名を追加する。
>
> この方針だとまずそうでしょうか?(やることは簡単そうですが、それなりに
> 対象範囲が広そうです)

複数のハッシュ空間を利用したい場合には、RomaClient インスタンスを
分けるという、この方針で対処いただければ幸いです。
#むしろとてもうれしいです

どうぞ宜しくお願いいたします。

西澤無我

Takahiro Kikumoto

unread,
Mar 7, 2010, 7:32:35 PM3/7/10
to roma-us...@googlegroups.com
きくもとです。

> 複数のハッシュ空間を利用したい場合には、RomaClient インスタンスを
> 分けるという、この方針で対処いただければ幸いです。
> #むしろとてもうれしいです

ということでしたので、対応してみました。

http://github.com/kikumoto/roma-java-client/tree/for_hash_name

ちょっとテストがきれいじゃなくて恐縮ですが、よろしくお願いいたします。


2010年3月3日14:11 muga <muga.ni...@gmail.com>:


> きくもとさん
>
> ご連絡ありがとうございます。西澤無我です。
>
> ROMA のハッシュ空間に関して、きくもとさんのご理解で正しいです。
> ROMA の複数ハッシュ空間へのアクセスに対する機能は、現行の
> Java Client にありません。
>
>> ・Config に "hash_name" を設けて、RomaClientFactory#newRomaClient で

>> ? RomaClient を生成するときに、そのインスタンスにハッシュ空間名を設定
>> ? できるようにする。


>> ・CommandContext に "HASH_NAME" を設けて、update や gets などの処理時

>> ? にコンテキストにハッシュ空間名を設定する。


>> ・コマンド文字列生成時にハッシュ空間名を追加する。
>>
>> この方針だとまずそうでしょうか?(やることは簡単そうですが、それなりに
>> 対象範囲が広そうです)
>
> 複数のハッシュ空間を利用したい場合には、RomaClient インスタンスを
> 分けるという、この方針で対処いただければ幸いです。
> #むしろとてもうれしいです
>
> どうぞ宜しくお願いいたします。
>
> 西澤無我
>
> On 3月2日, 午後8:02, きくもと <takakiku...@gmail.com> wrote:
>> きくもとです。
>>
>> いつもお世話になります。
>> Java Client の挙動について気になる点があったので質問をさせてください。
>>
>> ROMAではハッシュ空間を追加できるようになっていると思いますが、Java ク
>> ライアントから追加のハッシュ空間(ハッシュ名 roma 以外のハッシュ空間)に
>> アクセスしようとすると、現時点ではキーの指定を
>>

>> ? キー + 0x1b + ハッシュ空間名


>>
>> というようにせざるを得ないと思っています。
>> これでアクセスはできるのですが、Java クライアントが接続したノードから
>> forward が発生することがあります。
>> これは、RoutingTable から検索するときに利用するキーにハッシュ空間名が
>> 含まれているからだと思います。
>> サーバ側や ruby client では、ハッシュ空間名を含まない形のキーから、対
>> 象ノードを検索しているので、この点の相違のために Java Client で接続す
>> るノードが必ずしもそのキーを処理するノードになっていないのだと思いま
>> す。
>> この理解はあっていますでしょうか?
>>
>> 正解であれば、以下のような対処をしてみようと考えています。不正解なら
>> 無視してください。
>>
>> ・Config に "hash_name" を設けて、RomaClientFactory#newRomaClient で

>> ? RomaClient を生成するときに、そのインスタンスにハッシュ空間名を設定
>> ? できるようにする。


>> ・CommandContext に "HASH_NAME" を設けて、update や gets などの処理時

>> ? にコンテキストにハッシュ空間名を設定する。

muga

unread,
Mar 10, 2010, 10:13:00 AM3/10/10
to roma-user-japan
きくもとさん

ご連絡ありがとうございます。西澤無我です。

> > 複数のハッシュ空間を利用したい場合には、RomaClient インスタンスを
> > 分けるという、この方針で対処いただければ幸いです。
> > #むしろとてもうれしいです
>
> ということでしたので、対応してみました。
>
> http://github.com/kikumoto/roma-java-client/tree/for_hash_name

複数のクラスにまたがった修正を行っていただきありがとうございます。
こちらでもレビューとテストをさせていただき、問題なければ
そのままマージさせていただきます。

取り急ぎご連絡申し上げます。

西澤無我

On 3月8日, 午前9:32, Takahiro Kikumoto <takakiku...@gmail.com> wrote:
> きくもとです。
>
> > 複数のハッシュ空間を利用したい場合には、RomaClient インスタンスを
> > 分けるという、この方針で対処いただければ幸いです。
> > #むしろとてもうれしいです
>
> ということでしたので、対応してみました。
>
> http://github.com/kikumoto/roma-java-client/tree/for_hash_name
>
> ちょっとテストがきれいじゃなくて恐縮ですが、よろしくお願いいたします。
>

> 2010年3月3日14:11 muga <muga.nishiz...@gmail.com>:

muga

unread,
Mar 11, 2010, 3:40:49 AM3/11/10
to roma-user-japan
きくもとさん

西澤無我です。

遅くなってしまいましたが、java-client にマージさせていただきました。
ありがとうございます。

西澤無我

Takahiro Kikumoto

unread,
Mar 11, 2010, 6:32:30 AM3/11/10
to roma-us...@googlegroups.com
きくもとです。

こちらこそ、マージしていただきありがとうございました。

2010年3月11日17:40 muga <muga.ni...@gmail.com>:

Reply all
Reply to author
Forward
0 new messages