The current function that places nodes on a hash wheel is deterministic in case of node
joins and crashes/leaves. Even after a node leaves/crashes all surviving nodes in view
V' are going be positioned to same hash wheel position as in view V. In another words,
all surviving nodes in V' are deterministically placed on the same hash wheel
positions absolutely and relatively to each other as they were in view V. The case for
join is superfluous to my argument.
I am still learning about this topic but it seems that hash wheel node placing property
defined above is necessary for everything to work properly. If so, I find it very hard to
devise an algorithm that places nodes on hash wheel based on distance. As soon as one node
crashes/leaves positioning surviving nodes in V' to same positions as they were in
view V seems impossible since in distance based positioning we need to place nodes in
relation to neighbouring nodes.
Cheers,
Vladimir
On 2010-09-20, at 7:02 PM, Mircea Markus wrote:
On 20 Sep 2010, at 20:14, Vladimir Blagojevic wrote:
> Exactly. Either distance or we do not need these machineId, rackId etc because they
can be reduced to one level....
+1.
Would it be worth making this pluggable? I.e. the user to plug he's own code to
determine on which level the node is. Might be useful in some environments where nodes
are started on demand and user cannot configure the level through config. I'm thinking
about clouds :)
(with a default)
> On 2010-09-20, at 2:54 PM, Emmanuel Bernard wrote:
>
>> Could it be a colocation distance?
>> Like level 1 same machine, level 2 same rack etc and have an ago that tries low
levels before higher levels?
>>
>> Or should it just be localId (ie one level).
>>
>> On Sep 20, 2010, at 11:43 AM, Vladimir Blagojevic <vblagoje(a)redhat.com>
wrote:
>>
>>> Hi,
>>>
>>> In order to complete ISPN-180 lets agree on a definition of collocated nodes.
So, when are two nodes collocated? It depends on what we have defined as additional
metadata node input (i.e machineId, rackId, and/or siteId). If we have defined only
machineIds then the answer is obvious. However, if we have defined machineId, rackId,
and/or siteId for all nodes is it then that the non-collocated nodes are the ones having
different siteId? In another worlds if nodes have different machineId and rackId but the
same siteId are they collocated?
>>>
>>> Thanks,
>>> Vladimir