You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2021/03/10 09:49:34 UTC

[lucene] 04/09: Added more debug logging on how and why commits are reserved and deleted

This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch jira/solr-12730
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 514fef4f29c5f6c7a274f674577d3f4fda41342a
Author: Shalin Shekhar Mangar <sh...@apache.org>
AuthorDate: Tue Oct 30 15:43:12 2018 +0530

    Added more debug logging on how and why commits are reserved and deleted
---
 .../org/apache/solr/cloud/overseer/ReplicaMutator.java    |  4 ++--
 .../org/apache/solr/core/IndexDeletionPolicyWrapper.java  | 15 +++++++++++++--
 .../solr/cloud/autoscaling/IndexSizeTriggerTest.java      |  2 +-
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/ReplicaMutator.java b/solr/core/src/java/org/apache/solr/cloud/overseer/ReplicaMutator.java
index 68a42b9..82a0610 100644
--- a/solr/core/src/java/org/apache/solr/cloud/overseer/ReplicaMutator.java
+++ b/solr/core/src/java/org/apache/solr/cloud/overseer/ReplicaMutator.java
@@ -394,7 +394,7 @@ public class ReplicaMutator {
           }
         }
         if (allActive) {
-          log.info("Shard: {} - all replicas are active. Finding status of fellow sub-shards", sliceName);
+          log.info("Shard: {} - all {} replicas are active. Finding status of fellow sub-shards", sliceName, slice.getReplicasMap().size());
           // find out about other sub shards
           Map<String, Slice> allSlicesCopy = new HashMap<>(collection.getSlicesMap());
           List<Slice> subShardSlices = new ArrayList<>();
@@ -413,7 +413,7 @@ public class ReplicaMutator {
                     break outer;
                   }
                 }
-                log.info("Shard: {} - Fellow sub-shard: {} has all replicas active", sliceName, otherSlice.getName());
+                log.info("Shard: {} - Fellow sub-shard: {} has all {} replicas active", sliceName, otherSlice.getName(), otherSlice.getReplicasMap().size());
                 subShardSlices.add(otherSlice);
               }
             }
diff --git a/solr/core/src/java/org/apache/solr/core/IndexDeletionPolicyWrapper.java b/solr/core/src/java/org/apache/solr/core/IndexDeletionPolicyWrapper.java
index 40e65b7..ee7ed36 100644
--- a/solr/core/src/java/org/apache/solr/core/IndexDeletionPolicyWrapper.java
+++ b/solr/core/src/java/org/apache/solr/core/IndexDeletionPolicyWrapper.java
@@ -130,6 +130,7 @@ public final class IndexDeletionPolicyWrapper extends IndexDeletionPolicy {
     if (reserveCount == null) reserveCount = new AtomicInteger();
     reserveCount.incrementAndGet();
     savedCommits.put(indexCommitGen, reserveCount);
+    log.debug("Saving commit point for generation {}", indexCommitGen);
   }
 
   /** Release a previously saved commit point */
@@ -138,6 +139,7 @@ public final class IndexDeletionPolicyWrapper extends IndexDeletionPolicy {
     if (reserveCount == null) return;// this should not happen
     if (reserveCount.decrementAndGet() <= 0) {
       savedCommits.remove(indexCommitGen);
+      log.debug("Releasing commit point for generation {}", indexCommitGen);
     }
   }
 
@@ -189,11 +191,20 @@ public final class IndexDeletionPolicyWrapper extends IndexDeletionPolicy {
     @Override
     public void delete() {
       Long gen = delegate.getGeneration();
+      log.debug("Checking whether we can delete commit point with generation: {}", gen);
       Long reserve = reserves.get(gen);
-      if (reserve != null && System.nanoTime() < reserve) return;
-      if (savedCommits.containsKey(gen)) return;
+      long currentTime = System.nanoTime();
+      if (reserve != null && currentTime < reserve) {
+        log.debug("Commit point with generation: {} not deleted because its reserve {} is less than current time {}", gen, reserve, currentTime);
+        return;
+      }
+      if (savedCommits.containsKey(gen))  {
+        log.debug("Commit point with generation: {} not deleted because it is saved");
+        return;
+      }
       if (snapshotMgr.isSnapshotted(gen)) return;
       delegate.delete();
+      log.debug("Commit point with generation: {} deleted", gen);
     }
 
     @Override
diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/IndexSizeTriggerTest.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/IndexSizeTriggerTest.java
index 934ec20..a3f75dc 100644
--- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/IndexSizeTriggerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/IndexSizeTriggerTest.java
@@ -67,7 +67,7 @@ import static org.apache.solr.common.cloud.ZkStateReader.SOLR_AUTOSCALING_CONF_P
 /**
  *
  */
-@LogLevel("org.apache.solr.cloud.autoscaling=DEBUG;org.apache.solr.handler.admin.MetricsHandler=DEBUG")
+@LogLevel("org.apache.solr.cloud.autoscaling=DEBUG;org.apache.solr.handler.admin.MetricsHandler=DEBUG;org.apache.solr.core.SolrDeletionPolicy=DEBUG;org.apache.solr.core.IndexDeletionPolicyWrapper=DEBUG;org.apache.solr.client.solrj.cloud.autoscaling=DEBUG;org.apache.solr.cloud.api.collections=DEBUG;org.apache.solr.cloud.Overseer=DEBUG;org.apache.solr.cloud.overseer=DEBUGorg.apache.solr.client.solrj.cloud.autoscaling=DEBUG;org.apache.solr.cloud.api.collections=DEBUG;org.apache.solr.cloud.O [...]
 public class IndexSizeTriggerTest extends SolrCloudTestCase {
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());