You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by do...@apache.org on 2022/02/15 23:41:59 UTC

[geode] branch support/1.15 updated: GEODE-10047: Fix expiration interval log (#7359)

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

donalevans pushed a commit to branch support/1.15
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/support/1.15 by this push:
     new 9f4f66e  GEODE-10047: Fix expiration interval log (#7359)
9f4f66e is described below

commit 9f4f66ed9ed0f8fdba432c6df92184ee5adcc7eb
Author: Donal Evans <do...@vmware.com>
AuthorDate: Tue Feb 15 15:34:27 2022 -0800

    GEODE-10047: Fix expiration interval log (#7359)
    
    - Change naming of passive expiration to active expiration throughout
    the geode-for-redis module so as to be consistent with Redis' language
    - Replace hard-coded expiration interval of 1 second with a reference to
    the configured expiration interval in log message in
    PassiveExpirationManager (now named ActiveExpirationManager)
    
    Authored-by: Donal Evans <do...@vmware.com>
    (cherry picked from commit cd0b52e02bb4aeef7b35a2c5015cb7333481232e)
---
 .../key/AbstractPexpireIntegrationTest.java        |  2 +-
 .../geode/redis/internal/GeodeRedisServer.java     |  8 ++---
 ...onManager.java => ActiveExpirationManager.java} | 21 +++++++------
 .../redis/internal/statistics/GeodeRedisStats.java | 36 +++++++++++-----------
 .../redis/internal/statistics/RedisStats.java      |  7 ++---
 5 files changed, 37 insertions(+), 37 deletions(-)

diff --git a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/key/AbstractPexpireIntegrationTest.java b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/key/AbstractPexpireIntegrationTest.java
index 3e06c07..d673a73 100644
--- a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/key/AbstractPexpireIntegrationTest.java
+++ b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/key/AbstractPexpireIntegrationTest.java
@@ -99,7 +99,7 @@ public abstract class AbstractPexpireIntegrationTest implements RedisIntegration
   }
 
   @Test
-  public void should_passivelyExpireKeys() {
+  public void should_activelyExpireKeys() {
     jedis.sadd("{tag1}key", "value");
     jedis.pexpire("{tag1}key", 100);
 
diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/GeodeRedisServer.java b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/GeodeRedisServer.java
index e53d44f..15bc0ce 100644
--- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/GeodeRedisServer.java
+++ b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/GeodeRedisServer.java
@@ -34,7 +34,7 @@ import org.apache.geode.redis.internal.netty.NettyRedisServer;
 import org.apache.geode.redis.internal.pubsub.PubSub;
 import org.apache.geode.redis.internal.pubsub.PubSubImpl;
 import org.apache.geode.redis.internal.pubsub.Subscriptions;
-import org.apache.geode.redis.internal.services.PassiveExpirationManager;
+import org.apache.geode.redis.internal.services.ActiveExpirationManager;
 import org.apache.geode.redis.internal.services.RegionProvider;
 import org.apache.geode.redis.internal.services.cluster.RedisMemberInfo;
 import org.apache.geode.redis.internal.services.cluster.RedisMemberInfoRetrievalFunction;
@@ -59,7 +59,7 @@ public class GeodeRedisServer {
   public static final String ENABLE_UNSUPPORTED_COMMANDS_PARAM = "enable-unsupported-commands";
   private static boolean unsupportedCommandsEnabled;
   private static final Logger logger = LogService.getLogger();
-  private final PassiveExpirationManager passiveExpirationManager;
+  private final ActiveExpirationManager activeExpirationManager;
   private final NettyRedisServer nettyRedisServer;
   private final RegionProvider regionProvider;
   private final PubSub pubSub;
@@ -86,7 +86,7 @@ public class GeodeRedisServer {
     regionProvider = new RegionProvider(cache, stripedCoordinator, redisStats);
     pubSub = new PubSubImpl(new Subscriptions(redisStats), regionProvider, redisStats);
 
-    passiveExpirationManager = new PassiveExpirationManager(regionProvider);
+    activeExpirationManager = new ActiveExpirationManager(regionProvider);
 
     DistributedMember member = cache.getDistributedSystem().getDistributedMember();
     RedisSecurityService securityService = new RedisSecurityService(cache.getSecurityService());
@@ -159,7 +159,7 @@ public class GeodeRedisServer {
     if (!shutdown) {
       logger.info("GeodeRedisServer shutting down");
       pubSub.close();
-      passiveExpirationManager.stop();
+      activeExpirationManager.stop();
       nettyRedisServer.stop();
       redisStats.close();
       shutdown = true;
diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/services/PassiveExpirationManager.java b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/services/ActiveExpirationManager.java
similarity index 83%
rename from geode-for-redis/src/main/java/org/apache/geode/redis/internal/services/PassiveExpirationManager.java
rename to geode-for-redis/src/main/java/org/apache/geode/redis/internal/services/ActiveExpirationManager.java
index 1bc02b8..98bf0f0 100644
--- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/services/PassiveExpirationManager.java
+++ b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/services/ActiveExpirationManager.java
@@ -34,20 +34,21 @@ import org.apache.geode.logging.internal.log4j.api.LogService;
 import org.apache.geode.redis.internal.data.RedisData;
 import org.apache.geode.redis.internal.data.RedisKey;
 
-public class PassiveExpirationManager {
+public class ActiveExpirationManager {
   private static final Logger logger = LogService.getLogger();
 
   public static final int DEFAULT_REDIS_EXPIRATION_INTERVAL_SECONDS = 180;
 
   private final ScheduledExecutorService expirationExecutor;
+  private final int activeExpirationInterval;
 
-  public PassiveExpirationManager(RegionProvider regionProvider) {
-    int interval = getIntegerSystemProperty(EXPIRATION_INTERVAL_SECONDS,
+  public ActiveExpirationManager(RegionProvider regionProvider) {
+    activeExpirationInterval = getIntegerSystemProperty(EXPIRATION_INTERVAL_SECONDS,
         DEFAULT_REDIS_EXPIRATION_INTERVAL_SECONDS, 1);
 
-    expirationExecutor = newSingleThreadScheduledExecutor("GemFireRedis-PassiveExpiration-");
-    expirationExecutor.scheduleWithFixedDelay(() -> doDataExpiration(regionProvider), interval,
-        interval, SECONDS);
+    expirationExecutor = newSingleThreadScheduledExecutor("GemFireRedis-ActiveExpiration-");
+    expirationExecutor.scheduleWithFixedDelay(() -> doDataExpiration(regionProvider),
+        activeExpirationInterval, activeExpirationInterval, SECONDS);
   }
 
   public void stop() {
@@ -55,7 +56,7 @@ public class PassiveExpirationManager {
   }
 
   private void doDataExpiration(RegionProvider regionProvider) {
-    final long start = regionProvider.getRedisStats().startPassiveExpirationCheck();
+    final long start = regionProvider.getRedisStats().startActiveExpirationCheck();
     long expireCount = 0;
     try {
       final long now = System.currentTimeMillis();
@@ -76,10 +77,10 @@ public class PassiveExpirationManager {
       }
     } catch (CacheClosedException ignore) {
     } catch (RuntimeException | Error ex) {
-      logger.warn("Passive expiration failed. Will try again in 1 second.",
-          ex);
+      logger.warn("Active expiration failed. Will try again in " + activeExpirationInterval
+          + " second(s).", ex);
     } finally {
-      regionProvider.getRedisStats().endPassiveExpirationCheck(start, expireCount);
+      regionProvider.getRedisStats().endActiveExpirationCheck(start, expireCount);
     }
   }
 
diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/statistics/GeodeRedisStats.java b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/statistics/GeodeRedisStats.java
index 003cadd..110c969 100644
--- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/statistics/GeodeRedisStats.java
+++ b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/statistics/GeodeRedisStats.java
@@ -40,9 +40,9 @@ public class GeodeRedisStats {
       new EnumMap<>(RedisCommandType.class);
 
   private static final int currentlyConnectedClients;
-  private static final int passiveExpirationChecksId;
-  private static final int passiveExpirationCheckTimeId;
-  private static final int passiveExpirationsId;
+  private static final int activeExpirationChecksId;
+  private static final int activeExpirationCheckTimeId;
+  private static final int activeExpirationsId;
   private static final int expirationsId;
   private static final int expirationTimeId;
   private static final int totalConnectionsReceived;
@@ -84,9 +84,9 @@ public class GeodeRedisStats {
     fillTimeIdMap();
 
     currentlyConnectedClients = type.nameToId("connectedClients");
-    passiveExpirationChecksId = type.nameToId("passiveExpirationChecks");
-    passiveExpirationCheckTimeId = type.nameToId("passiveExpirationCheckTime");
-    passiveExpirationsId = type.nameToId("passiveExpirations");
+    activeExpirationChecksId = type.nameToId("activeExpirationChecks");
+    activeExpirationCheckTimeId = type.nameToId("activeExpirationCheckTime");
+    activeExpirationsId = type.nameToId("activeExpirations");
     expirationsId = type.nameToId("expirations");
     expirationTimeId = type.nameToId("expirationTime");
     totalConnectionsReceived = type.nameToId("totalConnectionsReceived");
@@ -122,18 +122,18 @@ public class GeodeRedisStats {
     stats.incLong(currentlyConnectedClients, -1);
   }
 
-  public void endPassiveExpirationCheck(long start, long expireCount) {
+  public void endActiveExpirationCheck(long start, long expireCount) {
     if (expireCount > 0) {
-      incPassiveExpirations(expireCount);
+      incActiveExpirations(expireCount);
     }
     if (clock.isEnabled()) {
-      stats.incLong(passiveExpirationCheckTimeId, getCurrentTimeNanos() - start);
+      stats.incLong(activeExpirationCheckTimeId, getCurrentTimeNanos() - start);
     }
-    stats.incLong(passiveExpirationChecksId, 1);
+    stats.incLong(activeExpirationChecksId, 1);
   }
 
-  private void incPassiveExpirations(long count) {
-    stats.incLong(passiveExpirationsId, count);
+  private void incActiveExpirations(long count) {
+    stats.incLong(activeExpirationsId, count);
   }
 
   public void endExpiration(long start) {
@@ -255,18 +255,18 @@ public class GeodeRedisStats {
         "Total number of client connections received by this redis server since startup.",
         "connections"));
 
-    descriptorList.add(statisticsTypeFactory.createLongCounter("passiveExpirationChecks",
-        "Total number of passive expiration checks that have"
+    descriptorList.add(statisticsTypeFactory.createLongCounter("activeExpirationChecks",
+        "Total number of active expiration checks that have"
             + " completed. Checks include scanning and expiring.",
         "checks"));
 
-    descriptorList.add(statisticsTypeFactory.createLongCounter("passiveExpirationCheckTime",
-        "Total amount of time, in nanoseconds, spent in passive "
+    descriptorList.add(statisticsTypeFactory.createLongCounter("activeExpirationCheckTime",
+        "Total amount of time, in nanoseconds, spent in active "
             + "expiration checks on this server.",
         "nanoseconds"));
 
-    descriptorList.add(statisticsTypeFactory.createLongCounter("passiveExpirations",
-        "Total number of keys that have been passively expired on this server.",
+    descriptorList.add(statisticsTypeFactory.createLongCounter("activeExpirations",
+        "Total number of keys that have been actively expired on this server.",
         "expirations"));
 
     descriptorList.add(statisticsTypeFactory.createLongCounter("expirations",
diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/statistics/RedisStats.java b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/statistics/RedisStats.java
index b4317d8..35d9557 100644
--- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/statistics/RedisStats.java
+++ b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/statistics/RedisStats.java
@@ -144,12 +144,12 @@ public class RedisStats {
     return keyspaceMisses.get();
   }
 
-  public long startPassiveExpirationCheck() {
+  public long startActiveExpirationCheck() {
     return getCurrentTimeNanos();
   }
 
-  public void endPassiveExpirationCheck(long start, long expireCount) {
-    geodeRedisStats.endPassiveExpirationCheck(start, expireCount);
+  public void endActiveExpirationCheck(long start, long expireCount) {
+    geodeRedisStats.endActiveExpirationCheck(start, expireCount);
   }
 
   public long startExpiration() {
@@ -161,7 +161,6 @@ public class RedisStats {
     expirations.incrementAndGet();
   }
 
-
   public long startPublish() {
     return geodeRedisStats.startPublish();
   }