コード例 #1
0
  private void assertAllLocationsWithRebalance(int numOwners) {
    ch = chf.create(MurmurHash3.getInstance(), numOwners, numSegments, chMembers, capacityFactors);

    List<Address> membersWithLoad = computeNodesWithLoad(chMembers);
    assertAllLocations(numOwners, membersWithLoad);
    assertDistribution(numOwners, membersWithLoad);

    ch =
        chf.create(
            MurmurHash3.getInstance(),
            numOwners,
            numSegments,
            chMembers.subList(0, 1),
            capacityFactors);
    assertAllLocations(numOwners, chMembers.subList(0, 1));

    for (int i = 2; i <= chMembers.size(); i++) {
      List<Address> currentMembers = chMembers.subList(0, i);
      log.debugf("Created CH with numOwners %d, members %s", numOwners, currentMembers);
      ch = chf.updateMembers(ch, currentMembers, capacityFactors);
      ch = chf.rebalance(ch);

      membersWithLoad = computeNodesWithLoad(currentMembers);
      assertAllLocations(numOwners, membersWithLoad);
    }
  }
コード例 #2
0
 protected void updateConsistentHash(int numOwners) {
   ch = chf.create(MurmurHash3.getInstance(), numOwners, numSegments, chMembers, null);
   log.debugf("Created CH with numOwners %d, members %s", numOwners, chMembers);
 }