Hello,
Just a couple of questions regarding this design:
- Is it possible to configure the weight of a node? If yes, is the same auto-partitioning policy applicable? My concern is that a "clockwise" policy may add a significant load on nodes hosted by low spec hosts.
This is partly a problem for the sticky load balancer to deal with i.e. it should load requests to primary machines based on spec/power.
If we partitioned the session data into buckets (rather than one big lump), then the buckets of session data can be distributed evenly around the cluster so that each session bucket has N buddies (replicas) but that a load-balancing algorithm could be used to distribute the buckets based on (say) a host spec weighting or whatnot. e.g. nodes in the cluster could limit how many buckets to accept due to their lack of resources etc.
Imagine having 1 massive box and 2 small ones in a cluster - you'd probably want to give the big box more buckets than the smaller ones. The previous model Jules described still holds (that was a view of 1 session bucket) - its just that the total session state for a machine might be spread over many buckets.
Having multiple buckets could also help spread the load of recovering from a node failure in larger clusters.
- I have the feeling that one can not configure a preferred replication group for primary sessions of a specific node: if four nodes are available, I would like to configure that sessions of the first node should be replicated by the third node, if available, or the fourth one.
- Is it not an overhead to have b-1 replica? AFAIK, a single secondary should be enough.
It all depends on your risk profile I suppose. I backup is usually enough but you may want 2 for extra resilience - especially as one of those could be in a separate DR zone for really serious fail-over scenarios.
James ------- http://radio.weblogs.com/0112098/
