Daniel -

You should be using some kind of load balancer to point clients at the Riak
cluster since all nodes can handle communication.

There's information in the wiki about how the keys are hashed:
http://wiki.basho.com/pages/viewpage.action?pageId=1245320 and there is also
info about how routing an object to a set of partitions works:
http://wiki.basho.com/display/RIAK/Replication#Replication-Routinganobjecttoasetofpartitions

Key hashing is done through SHA1, so I'd assume that you would be able to
figure out which node is responsible for that chunk o' keyspace.

Jeremiah Peschka
Microsoft SQL Server MVP
MCITP: Database Developer, DBA


On Fri, Dec 17, 2010 at 3:54 AM, Daniel Woo <daniel.y....@gmail.com> wrote:

> Thanks for your patience :-)
>
> So, when the client makes a call, it can just be round-robin since all
> nodes can gossip? But it should be better to guess where the partition is
> before making the call, right? Where can I find the documentation about how
> the partition distributions are shared between nodes and how client decides
> which node to ask?
>
> Regards,
> Daniel
>
>
> On Fri, Dec 17, 2010 at 12:24 PM, Dan Reverri <d...@basho.com> wrote:
>
>> Yes.
>>
>> Daniel Reverri
>> Developer Advocate
>> Basho Technologies, Inc.
>> d...@basho.com
>>
>>
>> On Thu, Dec 16, 2010 at 7:56 PM, Daniel Woo <daniel.y....@gmail.com>wrote:
>>
>>> Hi Daniel,
>>>
>>> So, the hashing algorithm is still consistent, but partitions (vnodes)
>>> are re-distributed to nodes when new nodes are added, and the nodes gossip
>>> and share the knowledge of the partition distribution, right? So the client
>>> can query any of the nodes, if the node doesn't know where the partition
>>> located it will query or gossip with adjacent nodes, right?
>>>
>>> Thanks,
>>> Daniel
>>>
>>>
>>>
>>> On Fri, Dec 17, 2010 at 10:42 AM, Dan Reverri <d...@basho.com> wrote:
>>>
>>>> Hi Daniel,
>>>>
>>>> Clients do not specify the partition when making a request. A client can
>>>> request any key from any node in the cluster and Riak will return the
>>>> associated value.
>>>>
>>>> Thanks,
>>>> Dan
>>>>
>>>> Daniel Reverri
>>>> Developer Advocate
>>>> Basho Technologies, Inc.
>>>> d...@basho.com
>>>>
>>>>
>>>> On Thu, Dec 16, 2010 at 6:01 PM, Daniel Woo <daniel.y....@gmail.com>wrote:
>>>>
>>>>> Hi Mark,
>>>>>
>>>>> Thanks for your explanation, so in this case the partitions would be
>>>>> re-distributed
>>>>>
>>>>> *from*
>>>>>
>>>>> Node1: p1 ~ p16
>>>>> Node2: p17 ~ p32
>>>>> Node3: p33 ~ p48
>>>>> Node4: p49 ~ p64
>>>>>
>>>>> *to *
>>>>> Node1: p1 ~ p13 (remove 3 partitions)
>>>>> Node2: p17 ~ p29 (remove 3 partitions)
>>>>> Node3: p33 ~ p45 (remove 3 partitions)
>>>>> Node4: p49 ~ p61 (remove 3 partitions)
>>>>> Node5: p14, 15, 16, 30, 31, 32, 46, 47, 48, 62, 63, 64 (aprox 1/5
>>>>> partitions will be transferred to this new node)
>>>>>
>>>>> Since there is no centralized node in Riak, how do we know the
>>>>> partition 32 is moved to node 5 from the client caller? Cassandra seems
>>>>> break half of the adjacent node's data into the new node, that will be 
>>>>> easy
>>>>> for the client to search for the datum just around the node-circle
>>>>> clockwise, although it causes unbalanced data distribution and you have to
>>>>> move them by command lines. Riak seems to have this solved by moving
>>>>> partitions into new nodes equally, that's very interesting, how do you 
>>>>> guys
>>>>> make it? If the client caller queries for partition 32 which was 
>>>>> originally
>>>>> on node 2, how do the client know it's on a new node now?
>>>>>
>>>>> Thanks,
>>>>> Daniel
>>>>>
>>>>>
>>>>> On Fri, Dec 17, 2010 at 6:56 AM, Mark Phillips <m...@basho.com> wrote:
>>>>>
>>>>>> Hey Daniel,
>>>>>>
>>>>>> [snip]
>>>>>>
>>>>>> > So, I guess Riak would have to re-hash the whole partitions into all
>>>>>> the 5
>>>>>> > nodes, right? Is this done lazily when the node finds the requested
>>>>>> data is
>>>>>> > missing?
>>>>>> > Or is there a way to handle this with consistent re-hashing so we
>>>>>> can avoid
>>>>>> > moving data around when new nodes added?
>>>>>> >
>>>>>>
>>>>>> Riak won't rehash all the partitions in the ring when new nodes are
>>>>>> added. When you go from 4 -> 5 nodes, for example, approx. 1/5 of the
>>>>>> existing partitions are transferred to the new node. The other 4/5s of
>>>>>> the partitions will remain unchanged. As far as moving data around
>>>>>> when new nodes are added, this is impossible to avoid. Data needs to
>>>>>> be handed off to be spread around the ring.
>>>>>>
>>>>>> Hope that helps.
>>>>>>
>>>>>> Mark
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Thanks & Regards,
>>>>> Daniel
>>>>>
>>>>> _______________________________________________
>>>>> riak-users mailing list
>>>>> riak-users@lists.basho.com
>>>>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> Thanks & Regards,
>>> Daniel
>>>
>>
>>
>
>
> --
> Thanks & Regards,
> Daniel
>
> _______________________________________________
> riak-users mailing list
> riak-users@lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>
>
_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to