You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2020/08/25 16:54:28 UTC

[cassandra] branch trunk updated: Remove deprecated HintedHandOffManager

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

brandonwilliams pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/trunk by this push:
     new a497d43  Remove deprecated HintedHandOffManager
a497d43 is described below

commit a497d43e6ba7568defe0621e90c3451ec9204e1d
Author: Bereng <be...@gmail.com>
AuthorDate: Tue Aug 25 11:45:51 2020 +0200

    Remove deprecated HintedHandOffManager
    
    Patch by Bereguer Blasi, reviewed by brandonwilliams for CASSANDRA-15939
---
 CHANGES.txt                                        |  1 +
 doc/source/operating/metrics.rst                   | 26 +-------
 .../apache/cassandra/db/HintedHandOffManager.java  | 76 ----------------------
 .../cassandra/db/HintedHandOffManagerMBean.java    | 50 --------------
 .../org/apache/cassandra/hints/HintsService.java   |  2 +-
 .../cassandra/metrics/HintedHandoffMetrics.java    |  2 +-
 .../org/apache/cassandra/service/StorageProxy.java |  2 -
 src/java/org/apache/cassandra/tools/NodeProbe.java | 25 +++----
 .../mock/nodetool/InternalNodeProbe.java           |  5 +-
 9 files changed, 16 insertions(+), 173 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 415f699..a36c910 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 4.0-beta2
+ * Remove deprecated HintedHandOffManager (CASSANDRA-15939)
  * Prevent repair from overrunning compaction (CASSANDRA-15817)
  * fix cqlsh COPY functions in Python 3.8 on Mac (CASSANDRA-16053)
  * Strip comment blocks from cqlsh input before processing statements (CASSANDRA-15802)
diff --git a/doc/source/operating/metrics.rst b/doc/source/operating/metrics.rst
index 0053cbc..3c9cc7d 100644
--- a/doc/source/operating/metrics.rst
+++ b/doc/source/operating/metrics.rst
@@ -538,34 +538,10 @@ TotalHints                 Counter        Number of hint messages written to thi
 TotalHintsInProgress       Counter        Number of hints attemping to be sent currently.
 ========================== ============== ===========
 
-.. _handoff-metrics:
-
-HintedHandoff Metrics
-^^^^^^^^^^^^^^^^^^^^^
-
-Metrics specific to Hinted Handoff.  There are also some metrics related to hints tracked in ``Storage Metrics``
-
-These metrics include the peer endpoint **in the metric name**
-
-Reported name format:
-
-**Metric Name**
-    ``org.apache.cassandra.metrics.HintedHandOffManager.<MetricName>``
-
-**JMX MBean**
-    ``org.apache.cassandra.metrics:type=HintedHandOffManager name=<MetricName>``
-
-=========================== ============== ===========
-Name                        Type           Description
-=========================== ============== ===========
-Hints_created-<PeerIP>       Counter        Number of hints on disk for this peer.
-Hints_not_stored-<PeerIP>    Counter        Number of hints not stored for this peer, due to being down past the configured hint window.
-=========================== ============== ===========
-
 .. _hintsservice-metrics:
 
 HintsService Metrics
-^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^
 
 Metrics specific to the Hints delivery service.  There are also some metrics related to hints tracked in ``Storage Metrics``
 
diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
deleted file mode 100644
index e26f658..0000000
--- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java
+++ /dev/null
@@ -1,76 +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.cassandra.db;
-
-import java.util.List;
-
-import org.apache.cassandra.hints.HintsService;
-import org.apache.cassandra.utils.MBeanWrapper;
-
-/**
- * A proxy class that implement the deprecated legacy HintedHandoffManagerMBean interface.
- *
- * TODO: remove in 4.0.
- */
-@SuppressWarnings("deprecation")
-@Deprecated
-public final class HintedHandOffManager implements HintedHandOffManagerMBean
-{
-    public static final HintedHandOffManager instance = new HintedHandOffManager();
-
-    public static final String MBEAN_NAME = "org.apache.cassandra.db:type=HintedHandoffManager";
-
-    private HintedHandOffManager()
-    {
-    }
-
-    public void registerMBean()
-    {
-        MBeanWrapper.instance.registerMBean(this, MBEAN_NAME);
-    }
-
-    public void deleteHintsForEndpoint(String host)
-    {
-        HintsService.instance.deleteAllHintsForEndpoint(host);
-    }
-
-    public void truncateAllHints()
-    {
-        HintsService.instance.deleteAllHints();
-    }
-
-    // TODO
-    public List<String> listEndpointsPendingHints()
-    {
-        throw new UnsupportedOperationException();
-    }
-
-    // TODO
-    public void scheduleHintDelivery(String host)
-    {
-        throw new UnsupportedOperationException();
-    }
-
-    public void pauseHintsDelivery(boolean doPause)
-    {
-        if (doPause)
-            HintsService.instance.pauseDispatch();
-        else
-            HintsService.instance.resumeDispatch();
-    }
-}
diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManagerMBean.java b/src/java/org/apache/cassandra/db/HintedHandOffManagerMBean.java
deleted file mode 100644
index 9ba425e..0000000
--- a/src/java/org/apache/cassandra/db/HintedHandOffManagerMBean.java
+++ /dev/null
@@ -1,50 +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.cassandra.db;
-
-import java.net.UnknownHostException;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-@Deprecated
-public interface HintedHandOffManagerMBean
-{
-    /**
-     * Nuke all hints from this node to `ep`.
-     * @param host String rep. of endpoint address to delete hints for, either ip address ("127.0.0.1") or hostname
-     */
-    public void deleteHintsForEndpoint(final String host);
-
-    /**
-     *  Truncate all the hints
-     */
-    public void truncateAllHints() throws ExecutionException, InterruptedException;
-
-    /**
-     * List all the endpoints that this node has hints for.
-     * @return set of endpoints; as Strings
-     */
-    public List<String> listEndpointsPendingHints();
-
-    /** force hint delivery to an endpoint **/
-    public void scheduleHintDelivery(String host) throws UnknownHostException;
-
-    /** pause hints delivery process **/
-    public void pauseHintsDelivery(boolean b);
-}
-
diff --git a/src/java/org/apache/cassandra/hints/HintsService.java b/src/java/org/apache/cassandra/hints/HintsService.java
index 1fd2d1a..60de478 100644
--- a/src/java/org/apache/cassandra/hints/HintsService.java
+++ b/src/java/org/apache/cassandra/hints/HintsService.java
@@ -66,7 +66,7 @@ public final class HintsService implements HintsServiceMBean
 
     public static HintsService instance = new HintsService();
 
-    private static final String MBEAN_NAME = "org.apache.cassandra.hints:type=HintsService";
+    public static final String MBEAN_NAME = "org.apache.cassandra.hints:type=HintsService";
 
     private static final int MIN_BUFFER_SIZE = 32 << 20;
     static final ImmutableMap<String, Object> EMPTY_PARAMS = ImmutableMap.of();
diff --git a/src/java/org/apache/cassandra/metrics/HintedHandoffMetrics.java b/src/java/org/apache/cassandra/metrics/HintedHandoffMetrics.java
index 56888da..0261e8e 100644
--- a/src/java/org/apache/cassandra/metrics/HintedHandoffMetrics.java
+++ b/src/java/org/apache/cassandra/metrics/HintedHandoffMetrics.java
@@ -40,7 +40,7 @@ public class HintedHandoffMetrics
 {
     private static final Logger logger = LoggerFactory.getLogger(HintedHandoffMetrics.class);
 
-    private static final MetricNameFactory factory = new DefaultNameFactory("HintedHandOffManager");
+    private static final MetricNameFactory factory = new DefaultNameFactory("HintsService");
 
     /** Total number of hints which are not stored, This is not a cache. */
     private final LoadingCache<InetAddressAndPort, DifferencingCounter> notStored = Caffeine.newBuilder()
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index a5a6e3c..4006e32 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -62,7 +62,6 @@ import org.apache.cassandra.db.ColumnFamilyStore;
 import org.apache.cassandra.db.ConsistencyLevel;
 import org.apache.cassandra.db.CounterMutation;
 import org.apache.cassandra.db.DecoratedKey;
-import org.apache.cassandra.db.HintedHandOffManager;
 import org.apache.cassandra.db.IMutation;
 import org.apache.cassandra.db.Keyspace;
 import org.apache.cassandra.db.Mutation;
@@ -211,7 +210,6 @@ public class StorageProxy implements StorageProxyMBean
     {
         MBeanWrapper.instance.registerMBean(instance, MBEAN_NAME);
         HintsService.instance.registerMBean();
-        HintedHandOffManager.instance.registerMBean();
 
         standardWritePerformer = (mutation, targets, responseHandler, localDataCenter) ->
         {
diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java b/src/java/org/apache/cassandra/tools/NodeProbe.java
index a7f4756..617da12 100644
--- a/src/java/org/apache/cassandra/tools/NodeProbe.java
+++ b/src/java/org/apache/cassandra/tools/NodeProbe.java
@@ -59,7 +59,6 @@ import org.apache.cassandra.batchlog.BatchlogManager;
 import org.apache.cassandra.batchlog.BatchlogManagerMBean;
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.ColumnFamilyStoreMBean;
-import org.apache.cassandra.db.HintedHandOffManagerMBean;
 import org.apache.cassandra.db.Keyspace;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.compaction.CompactionManagerMBean;
@@ -67,7 +66,8 @@ import org.apache.cassandra.gms.FailureDetector;
 import org.apache.cassandra.gms.FailureDetectorMBean;
 import org.apache.cassandra.gms.Gossiper;
 import org.apache.cassandra.gms.GossiperMBean;
-import org.apache.cassandra.db.HintedHandOffManager;
+import org.apache.cassandra.hints.HintsService;
+import org.apache.cassandra.hints.HintsServiceMBean;
 import org.apache.cassandra.locator.DynamicEndpointSnitchMBean;
 import org.apache.cassandra.locator.EndpointSnitchInfoMBean;
 import org.apache.cassandra.metrics.CassandraMetricsRegistry;
@@ -130,7 +130,7 @@ public class NodeProbe implements AutoCloseable
     protected FailureDetectorMBean fdProxy;
     protected CacheServiceMBean cacheService;
     protected StorageProxyMBean spProxy;
-    protected HintedHandOffManagerMBean hhProxy;
+    protected HintsServiceMBean hsProxy;
     protected BatchlogManagerMBean bmProxy;
     protected ActiveRepairServiceMBean arsProxy;
     private boolean failed;
@@ -224,8 +224,8 @@ public class NodeProbe implements AutoCloseable
             cacheService = JMX.newMBeanProxy(mbeanServerConn, name, CacheServiceMBean.class);
             name = new ObjectName(StorageProxy.MBEAN_NAME);
             spProxy = JMX.newMBeanProxy(mbeanServerConn, name, StorageProxyMBean.class);
-            name = new ObjectName(HintedHandOffManager.MBEAN_NAME);
-            hhProxy = JMX.newMBeanProxy(mbeanServerConn, name, HintedHandOffManagerMBean.class);
+            name = new ObjectName(HintsService.MBEAN_NAME);
+            hsProxy = JMX.newMBeanProxy(mbeanServerConn, name, HintsServiceMBean.class);
             name = new ObjectName(GCInspector.MBEAN_NAME);
             gcProxy = JMX.newMBeanProxy(mbeanServerConn, name, GCInspectorMXBean.class);
             name = new ObjectName(Gossiper.MBEAN_NAME);
@@ -1010,29 +1010,22 @@ public class NodeProbe implements AutoCloseable
 
     public void pauseHintsDelivery()
     {
-        hhProxy.pauseHintsDelivery(true);
+        hsProxy.pauseDispatch();
     }
 
     public void resumeHintsDelivery()
     {
-        hhProxy.pauseHintsDelivery(false);
+        hsProxy.resumeDispatch();
     }
 
     public void truncateHints(final String host)
     {
-        hhProxy.deleteHintsForEndpoint(host);
+        hsProxy.deleteAllHintsForEndpoint(host);
     }
 
     public void truncateHints()
     {
-        try
-        {
-            hhProxy.truncateAllHints();
-        }
-        catch (ExecutionException | InterruptedException e)
-        {
-            throw new RuntimeException("Error while executing truncate hints", e);
-        }
+        hsProxy.deleteAllHints();
     }
 
     public void refreshSizeEstimates()
diff --git a/test/distributed/org/apache/cassandra/distributed/mock/nodetool/InternalNodeProbe.java b/test/distributed/org/apache/cassandra/distributed/mock/nodetool/InternalNodeProbe.java
index 9ab264e..097206a 100644
--- a/test/distributed/org/apache/cassandra/distributed/mock/nodetool/InternalNodeProbe.java
+++ b/test/distributed/org/apache/cassandra/distributed/mock/nodetool/InternalNodeProbe.java
@@ -28,12 +28,12 @@ import com.google.common.collect.Multimap;
 import org.apache.cassandra.batchlog.BatchlogManager;
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.ColumnFamilyStoreMBean;
-import org.apache.cassandra.db.HintedHandOffManager;
 import org.apache.cassandra.db.Keyspace;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.gms.FailureDetector;
 import org.apache.cassandra.gms.FailureDetectorMBean;
 import org.apache.cassandra.gms.Gossiper;
+import org.apache.cassandra.hints.HintsService;
 import org.apache.cassandra.locator.DynamicEndpointSnitchMBean;
 import org.apache.cassandra.locator.EndpointSnitchInfo;
 import org.apache.cassandra.locator.EndpointSnitchInfoMBean;
@@ -92,7 +92,8 @@ public class InternalNodeProbe extends NodeProbe
         fdProxy = (FailureDetectorMBean) FailureDetector.instance;
         cacheService = CacheService.instance;
         spProxy = StorageProxy.instance;
-        hhProxy = HintedHandOffManager.instance;
+        hsProxy = HintsService.instance;
+
         gcProxy = new GCInspector();
         gossProxy = Gossiper.instance;
         bmProxy = BatchlogManager.instance;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org