kirklund commented on a change in pull request #6808:
URL: https://github.com/apache/geode/pull/6808#discussion_r697037730



##########
File path: 
geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/rebalance/model/RefusalReason.java
##########
@@ -42,6 +48,11 @@ public String formatMessage(Member target, Bucket bucket) {
       case CRITICAL_HEAP:
         return "Target member " + target.getMemberId()
             + " has reached its critical heap percentage, and cannot accept 
more data";
+      case DIFFERENT_ZONE:
+        return "Target member " + target.getMemberId()
+            + " is in a different redundancy zone than other members hosting 
bucket "
+            + bucket.getId()
+            + ": " + bucket.getMembersHosting();

Review comment:
       I'd like to see new unit tests for message formatting of a refusal.

##########
File path: 
geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/rebalance/model/PartitionedRegionLoadModel.java
##########
@@ -470,12 +470,14 @@ public Move findBestRemove(Bucket bucket) {
     Move bestMove = null;
 
     for (Member member : bucket.getMembersHosting()) {
-      float newLoad = (member.getTotalLoad() - bucket.getLoad()) / 
member.getWeight();
-      if (newLoad > mostLoaded && !member.equals(bucket.getPrimary())) {
-        Move move = new Move(null, member, bucket);
-        if (!this.attemptedBucketRemoves.contains(move)) {
-          mostLoaded = newLoad;
-          bestMove = move;
+      if (member.canDelete(bucket, this.partitionedRegion.getMyId(), 
true).willAccept()) {
+        float newLoad = (member.getTotalLoad() - bucket.getLoad()) / 
member.getWeight();
+        if (newLoad > mostLoaded && !member.equals(bucket.getPrimary())) {
+          Move move = new Move(null, member, bucket);
+          if (!this.attemptedBucketRemoves.contains(move)) {
+            mostLoaded = newLoad;
+            bestMove = move;
+          }

Review comment:
       Let's add unit tests for this change to 
`PartitionedRegionLoadModelJUnitTest`.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to