take into account when the number of datastreams / node was unbalanced, by having a target # of partitions / node (instead of overall)
make sure that any assignment is not heavily skewed: the difference between the maximum number of partitions and the minimum should be smaller than a fixed threshold