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
_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to