On Fri, Jan 27, 2012 at 2:35 PM, Mircea Markus <mircea.markus(a)jboss.com> wrote:
I've created a JIRA to track
this: https://issues.jboss.org/browse/ISPN-1801
I understand everybody has to have the exact same number of vnodes for
reads and writes to hit the correct node, right ?
Yes.
That's true, but it is not a good thing: numVirtNodes should be proportional
with the node's capacity, i.e. more powerful machines in the cluster should
have assigned more virtual nodes.
This way we can better control the load. A node would need to send its
configured numVirtualNodes when joining in order to support this, but that's
a thing we already do for TACH.
We should use a different mechanism than the TopologyAwareUUID we use
for TACH, because the address is sent with every command. The capacity
instead should be fairly static. We may want to make it changeable at
runtime, but it will take a state transfer to propagate that info to
all the members of the cluster (because the nodes' CHs need to stay in
sync).
In fact, I can imagine users wanting to balance key ownership between
machines/racks/sites with TACH, but without actually using RELAY - the
TopologyAwareUUID is just an overhead for them.
Cheers
Dan