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

boglesby pushed a commit to branch feature/GEODE-9138-revert
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 12cd50807dd71a22ad63e4e227e0540a1408e38e
Author: Barry Oglesby <bogle...@pivotal.io>
AuthorDate: Sat May 1 09:49:17 2021 -0700

    Revert "GEODE-9138: Modified hasSeenEvent to log the message if necessary 
and  and increment a stat (#6362)"
    
    This reverts commit d15601d16becbd483e0a66b86d78f8ab067736b8.
---
 .../DistributedEventTrackerIntegrationTest.java    | 146 ---------------------
 .../apache/geode/internal/cache/BucketRegion.java  |   4 -
 .../geode/internal/cache/CachePerfStats.java       |  17 +--
 .../geode/internal/cache/DistributedRegion.java    |   2 +-
 .../geode/internal/cache/EntryEventImpl.java       |   2 -
 .../apache/geode/internal/cache/LocalRegion.java   |  11 +-
 .../geode/internal/cache/PartitionedRegion.java    |   4 -
 .../internal/cache/PartitionedRegionStats.java     |   4 -
 .../geode/internal/cache/RegionPerfStats.java      |   6 -
 .../cache/event/DistributedEventTracker.java       |  87 ++++--------
 .../cache/tier/sockets/command/PutAll80.java       |   2 +-
 .../cache/tier/sockets/command/RemoveAll.java      |   2 +-
 .../geode/internal/cache/CachePerfStatsTest.java   |   8 --
 .../geode/internal/cache/RegionPerfStatsTest.java  |   7 -
 .../cache/event/DistributedEventTrackerTest.java   |  18 +--
 .../cache/event/EventTrackerExpiryTaskTest.java    |   8 +-
 geode-docs/reference/statistics_list.html.md.erb   |   1 -
 17 files changed, 40 insertions(+), 289 deletions(-)

diff --git 
a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/event/DistributedEventTrackerIntegrationTest.java
 
b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/event/DistributedEventTrackerIntegrationTest.java
deleted file mode 100644
index d20eb66..0000000
--- 
a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/event/DistributedEventTrackerIntegrationTest.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
- * agreements. See the NOTICE file distributed with this work for additional 
information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the 
License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software 
distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
- * or implied. See the License for the specific language governing permissions 
and limitations under
- * the License.
- */
-package org.apache.geode.internal.cache.event;
-
-import static org.apache.geode.cache.RegionShortcut.PARTITION;
-import static org.apache.geode.cache.RegionShortcut.REPLICATE;
-import static 
org.apache.geode.internal.cache.event.DistributedEventTracker.EVENT_HAS_PREVIOUSLY_BEEN_SEEN_PREFIX;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Optional;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import org.apache.geode.cache.Operation;
-import org.apache.geode.cache.partition.PartitionRegionHelper;
-import org.apache.geode.distributed.internal.InternalDistributedSystem;
-import org.apache.geode.internal.cache.BucketRegion;
-import org.apache.geode.internal.cache.DistributedRegion;
-import org.apache.geode.internal.cache.EntryEventImpl;
-import org.apache.geode.internal.cache.EventID;
-import org.apache.geode.internal.cache.LocalRegion;
-import org.apache.geode.internal.cache.PartitionedRegion;
-import org.apache.geode.internal.cache.tier.sockets.ClientProxyMembershipID;
-import org.apache.geode.test.junit.categories.RegionsTest;
-import org.apache.geode.test.junit.rules.ServerStarterRule;
-import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
-import 
org.apache.geode.test.junit.runners.CategoryWithParameterizedRunnerFactory;
-
-@RunWith(Parameterized.class)
-@Parameterized.UseParametersRunnerFactory(CategoryWithParameterizedRunnerFactory.class)
-@Category({RegionsTest.class})
-public class DistributedEventTrackerIntegrationTest {
-
-  @Parameterized.Parameters(name = "possibleDuplicate={0}")
-  public static Collection<Boolean> booleans() {
-    return Arrays.asList(true, false);
-  }
-
-  @Parameterized.Parameter
-  public boolean possibleDuplicate;
-
-  @Rule
-  public SerializableTestName testName = new SerializableTestName();
-
-  @Rule
-  public ServerStarterRule server = new 
ServerStarterRule().withNoCacheServer().withLogFile();
-
-  @Before
-  public void setUp() throws Exception {
-    server.startServer();
-  }
-
-  @Test
-  public void testHasSeenEventReplicatedRegion() throws IOException {
-    // Create the replicated region
-    DistributedRegion region = (DistributedRegion) 
server.createRegion(REPLICATE,
-        testName.getMethodName().substring(0, 
testName.getMethodName().indexOf('[')));
-
-    // Invoke hasSeenEvent and verify results
-    invokeHasSeenEventAndVerifyResults(region);
-  }
-
-  @Test
-  public void testHasSeenEventPartitionedRegion() throws IOException {
-    // Create the partitioned region
-    PartitionedRegion region = (PartitionedRegion) 
server.createRegion(PARTITION,
-        testName.getMethodName().substring(0, 
testName.getMethodName().indexOf('[')));
-
-    // Assign buckets so that the BucketRegions and their EventTrackers are 
created
-    PartitionRegionHelper.assignBucketsToPartitions(region);
-
-    // Get a BucketRegion
-    BucketRegion br = region.getBucketRegion(0);
-
-    // Invoke hasSeenEvent and verify results
-    invokeHasSeenEventAndVerifyResults(br);
-  }
-
-  private void invokeHasSeenEventAndVerifyResults(DistributedRegion region)
-      throws IOException {
-    byte[] memberId = new byte[0];
-    long threadId = 1L;
-
-    // Create an event with a high sequence number
-    EntryEventImpl event1 = createEvent(region, new EventID(memberId, 
threadId, 1000L), false);
-
-    // Record the event
-    region.getEventTracker().recordEvent(event1);
-
-    // Create an event with a lower sequence number and possibleDuplicate set 
appropriately
-    EntryEventImpl event2 =
-        createEvent(region, new EventID(memberId, threadId, 0L), 
possibleDuplicate);
-
-    // Invoke hasSeenEvent
-    boolean hasSeenEvent = region.getEventTracker().hasSeenEvent(event2);
-
-    // Assert hasSeenEvent is true
-    assertThat(hasSeenEvent).isTrue();
-
-    // Verify the log does or does not contain the message depending on 
possibleDuplicate
-    File logFile = ((InternalDistributedSystem) 
server.getCache().getDistributedSystem())
-        .getConfig().getLogFile();
-    Optional<String> logLine = 
Files.lines(Paths.get(logFile.getAbsolutePath()))
-        .filter(line -> line.contains(EVENT_HAS_PREVIOUSLY_BEEN_SEEN_PREFIX))
-        .findFirst();
-    assertThat(logLine.isPresent()).isEqualTo(!possibleDuplicate);
-
-    // Verify the statistic is incremented
-    
assertThat(region.getCachePerfStats().getPreviouslySeenEvents()).isEqualTo(1);
-  }
-
-  private EntryEventImpl createEvent(LocalRegion region, EventID eventId,
-      boolean possibleDuplicate) {
-    EntryEventImpl event = EntryEventImpl.create(region, Operation.CREATE, 0, 
0, null, true,
-        region.getCache().getMyId(), false, eventId);
-    event.setPossibleDuplicate(possibleDuplicate);
-
-    // Set the client context so that the event won't be ignored by the tracker
-    event.setContext(mock(ClientProxyMembershipID.class));
-    return event;
-  }
-}
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegion.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegion.java
index 64bb2a8..af5ebd0 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegion.java
@@ -1400,10 +1400,6 @@ public class BucketRegion extends DistributedRegion 
implements Bucket {
     return redundancy;
   }
 
-  public boolean hasLowRedundancy() {
-    return redundancy < getBucketAdvisor().getBucketRedundancy();
-  }
-
   @Override
   public boolean isPrimary() {
     throw new UnsupportedOperationException(
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/CachePerfStats.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/CachePerfStats.java
index 6221d55..7400442 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/CachePerfStats.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/CachePerfStats.java
@@ -166,8 +166,6 @@ public class CachePerfStats {
   static final int handlingNetsearchesFailedId;
   @VisibleForTesting
   static final int handlingNetsearchesFailedTimeId;
-  @VisibleForTesting
-  protected static final int previouslySeenEventsId;
 
   static {
     StatisticsTypeFactory f = StatisticsTypeFactoryImpl.singleton();
@@ -356,8 +354,6 @@ public class CachePerfStats {
         "Total number of times handling a network search initiated by a remote 
cache failed without success.";
     final String handlingNetsearchesFailedTimeDesc =
         "Total time spent handling failed network searches for remote caches.";
-    final String previouslySeenEventsDesc =
-        "The number of previously seen events ignored by the event tracker.";
 
     type = f.createType("CachePerfStats", "Statistics about GemFire cache 
performance",
         new StatisticDescriptor[] {
@@ -530,8 +526,7 @@ public class CachePerfStats {
             f.createLongCounter("handlingNetsearchesFailed", 
handlingNetsearchesFailedDesc,
                 "operations"),
             f.createLongCounter("handlingNetsearchesFailedTime", 
handlingNetsearchesFailedTimeDesc,
-                "nanoseconds"),
-            f.createLongCounter("previouslySeenEvents", 
previouslySeenEventsDesc, "events")
+                "nanoseconds")
         });
 
     loadsInProgressId = type.nameToId("loadsInProgress");
@@ -659,8 +654,6 @@ public class CachePerfStats {
     handlingNetsearchesTimeId = type.nameToId("handlingNetsearchesTime");
     handlingNetsearchesFailedId = type.nameToId("handlingNetsearchesFailed");
     handlingNetsearchesFailedTimeId = 
type.nameToId("handlingNetsearchesFailedTime");
-
-    previouslySeenEventsId = type.nameToId("previouslySeenEvents");
   }
 
   /** The Statistics object that we delegate most behavior to */
@@ -1530,12 +1523,4 @@ public class CachePerfStats {
   public long getHandlingNetsearchesFailed() {
     return stats.getLong(handlingNetsearchesFailedId);
   }
-
-  public long getPreviouslySeenEvents() {
-    return stats.getLong(previouslySeenEventsId);
-  }
-
-  public void incPreviouslySeenEvents() {
-    stats.incLong(previouslySeenEventsId, 1l);
-  }
 }
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRegion.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRegion.java
index 7bc893e..e7050e6 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRegion.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRegion.java
@@ -280,7 +280,7 @@ public class DistributedRegion extends LocalRegion 
implements InternalDistribute
 
   @Override
   protected EventTracker createEventTracker() {
-    EventTracker tracker = new DistributedEventTracker(this);
+    EventTracker tracker = new DistributedEventTracker(cache, 
getCancelCriterion(), getName());
     tracker.start();
     return tracker;
   }
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java
index 35b2cfd..708500b 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java
@@ -453,7 +453,6 @@ public class EntryEventImpl implements InternalEntryEvent, 
InternalCacheEvent,
         e = EntryEventImpl.create(region, entryOp, entryKey, entryNewValue,
             event.getCallbackArgument(), false, region.getMyId(), 
event.isGenerateCallbacks());
       }
-      e.setPossibleDuplicate(event.isPossibleDuplicate());
 
     } else {
       e = EntryEventImpl.create(region, entryOp, entryKey, entryNewValue, 
null, false,
@@ -480,7 +479,6 @@ public class EntryEventImpl implements InternalEntryEvent, 
InternalCacheEvent,
         e = EntryEventImpl.create(region, entryOp, entryKey, null, 
event.getCallbackArgument(),
             false, region.getMyId(), event.isGenerateCallbacks());
       }
-      e.setPossibleDuplicate(event.isPossibleDuplicate());
 
     } else {
       e = EntryEventImpl.create(region, entryOp, entryKey, null, null, false, 
region.getMyId(),
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
index d5147c8..0842e2b 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
@@ -8806,11 +8806,9 @@ public class LocalRegion extends AbstractRegion 
implements LoaderHelperFactory,
    *        retried client event, we need to make sure we send the original 
version tag along with
    *        the event.
    * @param callbackArg callback argument from client
-   * @param isRetry whether this is a client retry
    */
   public VersionedObjectList basicBridgePutAll(Map map, Map<Object, 
VersionTag> retryVersions,
-      ClientProxyMembershipID memberId, EventID eventId, boolean 
skipCallbacks, Object callbackArg,
-      boolean isRetry)
+      ClientProxyMembershipID memberId, EventID eventId, boolean 
skipCallbacks, Object callbackArg)
       throws TimeoutException, CacheWriterException {
 
     long startPut = getStatisticsClock().getTime();
@@ -8823,7 +8821,6 @@ public class LocalRegion extends AbstractRegion 
implements LoaderHelperFactory,
 
     try {
       event.setContext(memberId);
-      event.setPossibleDuplicate(isRetry);
       DistributedPutAllOperation putAllOp = new 
DistributedPutAllOperation(event, map.size(), true);
       try {
         VersionedObjectList result = basicPutAll(map, putAllOp, retryVersions);
@@ -8845,11 +8842,10 @@ public class LocalRegion extends AbstractRegion 
implements LoaderHelperFactory,
    *        keys slot will be non-null in this collection. Note that keys and 
retryVersions are
    *        parallel lists.
    * @param callbackArg callback argument from client
-   * @param isRetry whether this is a client retry
    */
   public VersionedObjectList basicBridgeRemoveAll(List<Object> keys,
       ArrayList<VersionTag> retryVersions, ClientProxyMembershipID memberId, 
EventID eventId,
-      Object callbackArg, boolean isRetry) throws TimeoutException, 
CacheWriterException {
+      Object callbackArg) throws TimeoutException, CacheWriterException {
 
     long startOp = getStatisticsClock().getTime();
 
@@ -8861,7 +8857,6 @@ public class LocalRegion extends AbstractRegion 
implements LoaderHelperFactory,
 
     try {
       event.setContext(memberId);
-      event.setPossibleDuplicate(isRetry);
       DistributedRemoveAllOperation removeAllOp =
           new DistributedRemoveAllOperation(event, keys.size(), true);
       try {
@@ -9506,7 +9501,6 @@ public class LocalRegion extends AbstractRegion 
implements LoaderHelperFactory,
       if (tagHolder != null) {
         event.setVersionTag(tagHolder.getVersionTag());
         event.setFromServer(tagHolder.isFromServer());
-        event.setPossibleDuplicate(tagHolder.isPossibleDuplicate());
       }
       if (generateEventID()) {
         event.setEventId(new EventID(putallOp.getBaseEvent().getEventId(), 
offset));
@@ -9543,7 +9537,6 @@ public class LocalRegion extends AbstractRegion 
implements LoaderHelperFactory,
       if (tagHolder != null) {
         event.setVersionTag(tagHolder.getVersionTag());
         event.setFromServer(tagHolder.isFromServer());
-        event.setPossibleDuplicate(tagHolder.isPossibleDuplicate());
       }
       if (generateEventID()) {
         event.setEventId(new EventID(op.getBaseEvent().getEventId(), offset));
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
index cb07780..eb7fed7 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
@@ -10122,8 +10122,4 @@ public class PartitionedRegion extends LocalRegion
     this.getSystem().handleResourceEvent(ResourceEvent.REGION_CREATE, this);
     this.regionCreationNotified = true;
   }
-
-  public boolean areRecoveriesInProgress() {
-    return prStats.getRecoveriesInProgress() > 0;
-  }
 }
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStats.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStats.java
index 01080bb..7196019 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStats.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStats.java
@@ -991,10 +991,6 @@ public class PartitionedRegionStats {
     this.stats.incLong(recoveriesCompletedId, 1);
   }
 
-  public long getRecoveriesInProgress() {
-    return this.stats.getLong(recoveriesInProgressId);
-  }
-
   public long startBucketCreate(boolean isRebalance) {
     this.stats.incLong(bucketCreatesInProgressId, 1);
     if (isRebalance) {
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/RegionPerfStats.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/RegionPerfStats.java
index 498b246..6e92ce9 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/RegionPerfStats.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/RegionPerfStats.java
@@ -593,12 +593,6 @@ class RegionPerfStats extends CachePerfStats implements 
RegionStats {
     }
   }
 
-  @Override
-  public void incPreviouslySeenEvents() {
-    stats.incLong(previouslySeenEventsId, 1l);
-    cachePerfStats.incPreviouslySeenEvents();
-  }
-
   private static Gauge registerEntriesGauge(InternalRegion region, 
MeterRegistry meterRegistry) {
     return Gauge.builder("geode.cache.entries", region::getLocalSize)
         .description("Current number of entries in the region.")
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/event/DistributedEventTracker.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/event/DistributedEventTracker.java
index ce24656..3640db8 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/event/DistributedEventTracker.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/event/DistributedEventTracker.java
@@ -21,14 +21,13 @@ import java.util.concurrent.ConcurrentMap;
 
 import org.apache.logging.log4j.Logger;
 
-import org.apache.geode.annotations.VisibleForTesting;
+import org.apache.geode.CancelCriterion;
 import org.apache.geode.distributed.DistributedMember;
 import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.Assert;
-import org.apache.geode.internal.cache.BucketRegion;
-import org.apache.geode.internal.cache.DistributedRegion;
 import org.apache.geode.internal.cache.EntryEventImpl;
 import org.apache.geode.internal.cache.EventID;
+import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.InternalCacheEvent;
 import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.ha.ThreadIdentifier;
@@ -42,15 +41,6 @@ import 
org.apache.geode.logging.internal.log4j.api.LogService;
 public class DistributedEventTracker implements EventTracker {
   private static final Logger logger = LogService.getLogger();
 
-  @VisibleForTesting
-  protected static final String EVENT_HAS_PREVIOUSLY_BEEN_SEEN_PREFIX =
-      "Event has previously been seen ";
-
-  private static final String EVENT_HAS_PREVIOUSLY_BEEN_SEEN_PARAMETERS =
-      "for region={}; operation={}; key={}; eventId={}; 
highestSequenceNumberSeen={}";
-
-  private static final String EVENT_HAS_PREVIOUSLY_BEEN_SEEN =
-      EVENT_HAS_PREVIOUSLY_BEEN_SEEN_PREFIX + 
EVENT_HAS_PREVIOUSLY_BEEN_SEEN_PARAMETERS;
   /**
    * a mapping of originator to the last event applied to this cache
    *
@@ -89,9 +79,9 @@ public class DistributedEventTracker implements EventTracker {
   private volatile InternalDistributedMember initialImageProvider;
 
   /**
-   * The region associated with this tracker
+   * The cache associated with this tracker
    */
-  private final DistributedRegion region;
+  private InternalCache cache;
 
   /**
    * The name of this tracker
@@ -112,25 +102,28 @@ public class DistributedEventTracker implements 
EventTracker {
   /**
    * Create an event tracker
    *
-   * @param region the region
+   * @param cache the cache of the region to associate with this tracker
+   * @param stopper the CancelCriterion for the region
+   * @param regionName name of the region
    */
-  public DistributedEventTracker(DistributedRegion region) {
-    this.region = region;
-    name = "Event Tracker for " + region.getName();
-    initializationLatch = new 
StoppableCountDownLatch(region.getCancelCriterion(), 1);
+  public DistributedEventTracker(InternalCache cache, CancelCriterion stopper, 
String regionName) {
+
+    this.cache = cache;
+    this.name = "Event Tracker for " + regionName;
+    this.initializationLatch = new StoppableCountDownLatch(stopper, 1);
   }
 
   @Override
   public void start() {
-    if (region.getCache().getEventTrackerTask() != null) {
-      region.getCache().getEventTrackerTask().addTracker(this);
+    if (cache.getEventTrackerTask() != null) {
+      cache.getEventTrackerTask().addTracker(this);
     }
   }
 
   @Override
   public void stop() {
-    if (region.getCache().getEventTrackerTask() != null) {
-      region.getCache().getEventTrackerTask().removeTracker(this);
+    if (cache.getEventTrackerTask() != null) {
+      cache.getEventTrackerTask().removeTracker(this);
     }
   }
 
@@ -363,58 +356,22 @@ public class DistributedEventTracker implements 
EventTracker {
       if (evh.isRemoved() || evh.getLastSequenceNumber() < 
eventID.getSequenceID()) {
         return false;
       }
-      if (shouldLogPreviouslySeenEvent(tagHolder, evh)) {
-        logger.info(EVENT_HAS_PREVIOUSLY_BEEN_SEEN, region.getName(),
-            tagHolder == null ? "unknown" : ((EntryEventImpl) 
tagHolder).getKey(),
-            tagHolder == null ? "unknown" : tagHolder.getOperation(), 
eventID.expensiveToString(),
-            evh.getLastSequenceNumber());
+      // log at fine because partitioned regions can send event multiple times
+      // during normal operation during bucket region initialization
+      if (logger.isTraceEnabled(LogMarker.DISTRIBUTION_BRIDGE_SERVER_VERBOSE)) 
{
+        logger.trace(LogMarker.DISTRIBUTION_BRIDGE_SERVER_VERBOSE,
+            "Cache encountered replay of event with ID {}.  Highest recorded 
for this source is {}",
+            eventID, evh.getLastSequenceNumber());
       }
       // bug #44956 - recover version tag for duplicate event
       if (evh.getLastSequenceNumber() == eventID.getSequenceID() && tagHolder 
!= null
           && evh.getVersionTag() != null) {
         ((EntryEventImpl) tagHolder).setVersionTag(evh.getVersionTag());
       }
-
-      // Increment the previously seen events statistic
-      region.getCachePerfStats().incPreviouslySeenEvents();
-
       return true;
     }
   }
 
-  private boolean shouldLogPreviouslySeenEvent(InternalCacheEvent event,
-      EventSequenceNumberHolder evh) {
-    boolean shouldLogSeenEvent = true;
-    String message = null;
-    if (event != null && ((EntryEventImpl) event).isPossibleDuplicate()) {
-      // Ignore the previously seen event if it is a possible duplicate
-      message = "possible duplicate";
-      shouldLogSeenEvent = false;
-    } else if (region instanceof BucketRegion) {
-      BucketRegion br = (BucketRegion) region;
-      if (br.hasLowRedundancy()) {
-        // Ignore the previously seen event while the bucket has low redundancy
-        message = "low redundancy";
-        shouldLogSeenEvent = false;
-      } else if (br.getPartitionedRegion().areRecoveriesInProgress()) {
-        // Ignore the previously seen event while recoveries are in progress
-        message = "recoveries in progress";
-        shouldLogSeenEvent = false;
-      }
-    }
-    if (!shouldLogSeenEvent && logger.isDebugEnabled()) {
-      if (event == null) {
-        logger.debug("Ignoring previously seen event due to {}", message);
-      } else {
-        logger.debug(
-            "Ignoring previously seen event due to {} for region={}; 
operation={}; key={}; eventId={}; highestSequenceNumberSeen={}",
-            message, region.getName(), ((EntryEventImpl) event).getKey(), 
event.getOperation(),
-            event.getEventId().expensiveToString(), 
evh.getLastSequenceNumber());
-      }
-    }
-    return shouldLogSeenEvent;
-  }
-
   private EventSequenceNumberHolder getSequenceHolderForEvent(EventID eventID) 
{
     ThreadIdentifier membershipID = createThreadIDFromEvent(eventID);
     return recordedEvents.get(membershipID);
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/PutAll80.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/PutAll80.java
index e6a193e..e6d0a4c 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/PutAll80.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/PutAll80.java
@@ -261,7 +261,7 @@ public class PutAll80 extends BaseCommand {
 
       response =
           region.basicBridgePutAll(map, uncheckedCast(retryVersions), 
serverConnection.getProxyID(),
-              eventId, skipCallbacks, callbackArg, clientMessage.isRetry());
+              eventId, skipCallbacks, callbackArg);
       if (!region.getConcurrencyChecksEnabled() || clientIsEmpty || 
!clientHasCCEnabled) {
         // the client only needs this if versioning is being used and the 
client
         // has storage
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RemoveAll.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RemoveAll.java
index 15dd3ff..c4b74a3 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RemoveAll.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RemoveAll.java
@@ -198,7 +198,7 @@ public class RemoveAll extends BaseCommand {
 
       response = region.basicBridgeRemoveAll(keys, 
uncheckedCast(retryVersions),
           serverConnection.getProxyID(),
-          eventId, callbackArg, clientMessage.isRetry());
+          eventId, callbackArg);
       if (!region.getConcurrencyChecksEnabled() || clientIsEmpty || 
!clientHasCCEnabled) {
         // the client only needs this if versioning is being used and the 
client
         // has storage
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/CachePerfStatsTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/CachePerfStatsTest.java
index f5dcd8e..673e7fe 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/CachePerfStatsTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/CachePerfStatsTest.java
@@ -43,7 +43,6 @@ import static 
org.apache.geode.internal.cache.CachePerfStats.loadsCompletedId;
 import static org.apache.geode.internal.cache.CachePerfStats.missesId;
 import static 
org.apache.geode.internal.cache.CachePerfStats.netloadsCompletedId;
 import static 
org.apache.geode.internal.cache.CachePerfStats.netsearchesCompletedId;
-import static 
org.apache.geode.internal.cache.CachePerfStats.previouslySeenEventsId;
 import static org.apache.geode.internal.cache.CachePerfStats.putAllsId;
 import static org.apache.geode.internal.cache.CachePerfStats.putTimeId;
 import static org.apache.geode.internal.cache.CachePerfStats.putsId;
@@ -1242,11 +1241,4 @@ public class CachePerfStatsTest {
 
     assertThat(statistics.getLong(handlingNetsearchesInProgressId)).isZero();
   }
-
-  @Test
-  public void incPreviouslySeenEventsIncrementsPreviouslySeenEvents() {
-    cachePerfStats.incPreviouslySeenEvents();
-
-    assertThat(statistics.getLong(previouslySeenEventsId)).isEqualTo(1L);
-  }
 }
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/RegionPerfStatsTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/RegionPerfStatsTest.java
index 017e4da..97e6b10 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/RegionPerfStatsTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/RegionPerfStatsTest.java
@@ -147,13 +147,6 @@ public class RegionPerfStatsTest {
   }
 
   @Test
-  public void 
incPreviouslySeenEvents_incrementsCachePerfStatsPreviouslySeenEvents() {
-    regionPerfStats.incPreviouslySeenEvents();
-
-    verify(cachePerfStats).incPreviouslySeenEvents();
-  }
-
-  @Test
   public void entryCountGaugeFetchesValueFromRegionLocalSize() {
     when(region.getLocalSize()).thenReturn(3);
 
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/event/DistributedEventTrackerTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/event/DistributedEventTrackerTest.java
index def4594..21b12a0 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/event/DistributedEventTrackerTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/event/DistributedEventTrackerTest.java
@@ -38,12 +38,11 @@ import org.apache.geode.cache.RegionAttributes;
 import org.apache.geode.distributed.DistributedMember;
 import org.apache.geode.distributed.internal.InternalDistributedSystem;
 import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.internal.cache.CachePerfStats;
-import org.apache.geode.internal.cache.DistributedRegion;
 import org.apache.geode.internal.cache.EntryEventImpl;
 import org.apache.geode.internal.cache.EventID;
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.InternalCacheEvent;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.ha.ThreadIdentifier;
 import org.apache.geode.internal.cache.tier.sockets.ClientProxyMembershipID;
 import org.apache.geode.internal.cache.versions.VersionTag;
@@ -51,21 +50,19 @@ import org.apache.geode.internal.cache.versions.VersionTag;
 
 public class DistributedEventTrackerTest {
 
-  private DistributedRegion region;
+  private LocalRegion region;
   private DistributedEventTracker eventTracker;
   private ClientProxyMembershipID memberId;
   private DistributedMember member;
 
   @Before
   public void setup() {
-    region = mock(DistributedRegion.class);
+    region = mock(LocalRegion.class);
     RegionAttributes<?, ?> regionAttributes = mock(RegionAttributes.class);
     memberId = mock(ClientProxyMembershipID.class);
     when(region.getAttributes()).thenReturn(regionAttributes);
     when(regionAttributes.getDataPolicy()).thenReturn(mock(DataPolicy.class));
     when(region.getConcurrencyChecksEnabled()).thenReturn(true);
-    when(region.getCancelCriterion()).thenReturn(mock(CancelCriterion.class));
-    when(region.getCachePerfStats()).thenReturn(mock(CachePerfStats.class));
 
     InternalCache cache = mock(InternalCache.class);
     InternalDistributedSystem ids = mock(InternalDistributedSystem.class);
@@ -74,7 +71,8 @@ public class DistributedEventTrackerTest {
     when(ids.getOffHeapStore()).thenReturn(null);
 
     member = mock(DistributedMember.class);
-    eventTracker = new DistributedEventTracker(region);
+    eventTracker = new DistributedEventTracker(region.getCache(), 
mock(CancelCriterion.class),
+        region.getName());
   }
 
   @Test
@@ -133,7 +131,8 @@ public class DistributedEventTrackerTest {
   public void returnsCorrectNameOfCache() {
     String testName = "testing";
     when(region.getName()).thenReturn(testName);
-    eventTracker = new DistributedEventTracker(region);
+    eventTracker = new DistributedEventTracker(region.getCache(), 
mock(CancelCriterion.class),
+        region.getName());
     assertEquals("Event Tracker for " + testName, eventTracker.getName());
   }
 
@@ -151,7 +150,8 @@ public class DistributedEventTrackerTest {
     InternalCache cache = mock(InternalCache.class);
     when(region.getCache()).thenReturn(cache);
     when(cache.getEventTrackerTask()).thenReturn(task);
-    eventTracker = new DistributedEventTracker(region);
+    eventTracker = new DistributedEventTracker(region.getCache(), 
mock(CancelCriterion.class),
+        region.getName());
     eventTracker.start();
     verify(task, times(1)).addTracker(eventTracker);
     eventTracker.stop();
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/event/EventTrackerExpiryTaskTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/event/EventTrackerExpiryTaskTest.java
index 2c7a52d..eeaebaf 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/event/EventTrackerExpiryTaskTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/event/EventTrackerExpiryTaskTest.java
@@ -16,13 +16,12 @@ package org.apache.geode.internal.cache.event;
 
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
 import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.geode.CancelCriterion;
-import org.apache.geode.internal.cache.DistributedRegion;
+import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.ha.ThreadIdentifier;
 
 public class EventTrackerExpiryTaskTest {
@@ -86,8 +85,7 @@ public class EventTrackerExpiryTaskTest {
   }
 
   private DistributedEventTracker constructTestTracker() {
-    DistributedRegion region = mock(DistributedRegion.class);
-    when(region.getCancelCriterion()).thenReturn(mock(CancelCriterion.class));
-    return new DistributedEventTracker(region);
+    return new DistributedEventTracker(mock(InternalCache.class), 
mock(CancelCriterion.class),
+        "test region");
   }
 }
diff --git a/geode-docs/reference/statistics_list.html.md.erb 
b/geode-docs/reference/statistics_list.html.md.erb
index 699c392..0aabb39 100644
--- a/geode-docs/reference/statistics_list.html.md.erb
+++ b/geode-docs/reference/statistics_list.html.md.erb
@@ -131,7 +131,6 @@ The primary statistics are:
 | `partitionedRegions`             | The current number of partitioned regions 
in the cache.                                                                   
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
 | `postCompressedBytes`            | Total number of bytes after compressing.  
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
 | `preCompressedBytes`             | Total number of bytes before compressing. 
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
-| `previouslySeenEvents`           | The number of previously seen events 
ignored by the event tracker.                                                   
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
 | `putAlls`                        | The total number of times a map is added 
or replaced in this cache as a result of a local operation. Note, this only 
counts putAlls done explicitly on this cache; it does not count updates pushed 
from other caches.                                                              
                                                                                
                                                                                
                    [...]
 | `putallTime`                     | Total time spent replacing a map in this 
cache as a result of a local operation. This includes synchronizing on the map, 
invoking cache callbacks, sending messages to other caches and waiting for 
responses (if required).                                                        
                                                                                
                                                                                
                    [...]
 | `puts`                           | The total number of times an entry is 
added or replaced in this cache as a result of a local operation (put(), 
create(), or get() which results in load, netsearch, or netloading a value). 
Note, this only counts puts done explicitly on this cache; it does not count 
updates pushed from other caches.                                               
                                                                                
                               [...]

Reply via email to