private void calculateDistributionHashValues(int parentHash) {
        distributionHash = parentHash ^ (1664525 * index + 1013904223);
        if (subgroups == null) return;
        for (Map.Entry<Integer, Group> entry : subgroups.entrySet()) {
            entry.getValue().calculateDistributionHashValues(distributionHash);
        }
    }
The distribution hashes is hopefully unique numbers for each group that is used to adjust the seed generated
for groups. This is called by Distribution during configuration on the root node. It recursively generates all hashes.
vdslib/src/main/java/com/yahoo/vdslib/distribution/Group.java