> > I like this idea. It feels like a good 80/20 solution -- 80% of the
> > benefits, 20% of the effort. More like 5% of the effort. I can't
> > even enumerate all the places full vnode support would change, but an
> > "active token range" concept would be relatively limited in scope.
> 
> 
> It only addresses 1 of Sam's original 5 points, so I wouldn't call it
> an "80% solution".
> 
To support a form of DF, I think some tweaking of the replica placement could 
achieve this effect quite well. We could introduce a variable into replica 
placement, which I'm going to incorrectly call DF for the purposes of 
illustration. The key range for a node would be sub-divided by DF (1 by 
default) and this would be used to further distribution replica selection based 
on this "sub-partition". 

Currently, the offset formula works out to be something like this:

offset = replica

For RandomPartitioner, DF placement might look something like:

offset = replica + (token % DF)

Now, I realize replica selection is actually much more complicated than this, 
but these formulas are for illustration purposes.

Modifying replica placement & the partitioners to support this seems 
straightforward, but I'm unsure of what's required to get it working for ring 
management operations. On the surface, it does seem like this could be added 
without any kind of difficult migration support. 

Thoughts?


Reply via email to