You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by is...@apache.org on 2020/07/02 00:36:55 UTC

[lucene-solr] 01/01: SOLR-14022: Deprecate CDCR

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

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

commit 57663dcc3391f70d21bdcbea577748b2b6b595c1
Author: Ishan Chattopadhyaya <is...@apache.org>
AuthorDate: Thu Jul 2 06:06:36 2020 +0530

    SOLR-14022: Deprecate CDCR
---
 solr/CHANGES.txt                                                      | 2 ++
 .../core/src/java/org/apache/solr/handler/CdcrBufferStateManager.java | 2 ++
 .../core/src/java/org/apache/solr/handler/CdcrLeaderStateManager.java | 2 ++
 .../src/java/org/apache/solr/handler/CdcrProcessStateManager.java     | 2 ++
 solr/core/src/java/org/apache/solr/handler/CdcrReplicator.java        | 2 ++
 solr/core/src/java/org/apache/solr/handler/CdcrReplicatorManager.java | 1 +
 solr/core/src/java/org/apache/solr/handler/CdcrRequestHandler.java    | 4 ++++
 solr/core/src/java/org/apache/solr/update/CdcrTransactionLog.java     | 2 ++
 .../java/org/apache/solr/update/processor/CdcrUpdateProcessor.java    | 2 ++
 solr/solr-ref-guide/src/cross-data-center-replication-cdcr.adoc       | 2 ++
 solr/solr-ref-guide/src/solr-upgrade-notes.adoc                       | 4 ++++
 11 files changed, 25 insertions(+)

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 1eef58e..c57266d 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -413,6 +413,8 @@ Other Changes
 * SOLR-14541: Ensure classes that implement equals implement hashCode or suppress warnings
   (gezapeti, Ilan Ginsburg, Erick Erickson)
 
+* SOLR-14022: Deprecate CDCR (Joel Bernstein, Ishan Chattopadhyaya)
+
 ==================  8.5.2 ==================
 
 Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
diff --git a/solr/core/src/java/org/apache/solr/handler/CdcrBufferStateManager.java b/solr/core/src/java/org/apache/solr/handler/CdcrBufferStateManager.java
index 5a9add8..49d19f1 100644
--- a/solr/core/src/java/org/apache/solr/handler/CdcrBufferStateManager.java
+++ b/solr/core/src/java/org/apache/solr/handler/CdcrBufferStateManager.java
@@ -32,7 +32,9 @@ import java.nio.charset.Charset;
 /**
  * Manage the state of the update log buffer. It is responsible of synchronising the state
  * through Zookeeper. The state of the buffer is stored in the zk node defined by {@link #getZnodePath()}.
+ * @deprecated since 8.6
  */
+@Deprecated(since = "8.6")
 class CdcrBufferStateManager extends CdcrStateManager {
 
   private CdcrParams.BufferState state = DEFAULT_STATE;
diff --git a/solr/core/src/java/org/apache/solr/handler/CdcrLeaderStateManager.java b/solr/core/src/java/org/apache/solr/handler/CdcrLeaderStateManager.java
index ac80c36..c9bc5fd 100644
--- a/solr/core/src/java/org/apache/solr/handler/CdcrLeaderStateManager.java
+++ b/solr/core/src/java/org/apache/solr/handler/CdcrLeaderStateManager.java
@@ -36,7 +36,9 @@ import org.slf4j.LoggerFactory;
  * It takes care of notifying the {@link CdcrReplicatorManager} in case
  * of a leader state change.
  * </p>
+ * @deprecated since 8.6
  */
+@Deprecated(since = "8.6")
 class CdcrLeaderStateManager extends CdcrStateManager {
 
   private boolean amILeader = false;
diff --git a/solr/core/src/java/org/apache/solr/handler/CdcrProcessStateManager.java b/solr/core/src/java/org/apache/solr/handler/CdcrProcessStateManager.java
index 9b4cc80..6506030 100644
--- a/solr/core/src/java/org/apache/solr/handler/CdcrProcessStateManager.java
+++ b/solr/core/src/java/org/apache/solr/handler/CdcrProcessStateManager.java
@@ -36,7 +36,9 @@ import org.slf4j.LoggerFactory;
  * It takes care of notifying the {@link CdcrReplicatorManager} in case
  * of a process state change.
  * </p>
+ * @deprecated since 8.6
  */
+@Deprecated(since = "8.6")
 class CdcrProcessStateManager extends CdcrStateManager {
 
   private CdcrParams.ProcessState state = DEFAULT_STATE;
diff --git a/solr/core/src/java/org/apache/solr/handler/CdcrReplicator.java b/solr/core/src/java/org/apache/solr/handler/CdcrReplicator.java
index 1f41cc3..936750e 100644
--- a/solr/core/src/java/org/apache/solr/handler/CdcrReplicator.java
+++ b/solr/core/src/java/org/apache/solr/handler/CdcrReplicator.java
@@ -39,7 +39,9 @@ import static org.apache.solr.common.params.CommonParams.VERSION_FIELD;
  * The replication logic. Given a {@link org.apache.solr.handler.CdcrReplicatorState}, it reads all the new entries
  * in the update log and forward them to the target cluster. If an error occurs, the replication is stopped and
  * will be tried again later.
+ * @deprecated since 8.6
  */
+@Deprecated(since = "8.6")
 public class CdcrReplicator implements Runnable {
 
   private final CdcrReplicatorState state;
diff --git a/solr/core/src/java/org/apache/solr/handler/CdcrReplicatorManager.java b/solr/core/src/java/org/apache/solr/handler/CdcrReplicatorManager.java
index 01a0c4d..1f9d1f9 100644
--- a/solr/core/src/java/org/apache/solr/handler/CdcrReplicatorManager.java
+++ b/solr/core/src/java/org/apache/solr/handler/CdcrReplicatorManager.java
@@ -56,6 +56,7 @@ import org.slf4j.LoggerFactory;
 
 import static org.apache.solr.handler.admin.CoreAdminHandler.RESPONSE_STATUS;
 
+@Deprecated(since = "8.6")
 class CdcrReplicatorManager implements CdcrStateManager.CdcrStateObserver {
 
   private static final int MAX_BOOTSTRAP_ATTEMPTS = 5;
diff --git a/solr/core/src/java/org/apache/solr/handler/CdcrRequestHandler.java b/solr/core/src/java/org/apache/solr/handler/CdcrRequestHandler.java
index e7211f4..8e77a84 100644
--- a/solr/core/src/java/org/apache/solr/handler/CdcrRequestHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/CdcrRequestHandler.java
@@ -107,7 +107,9 @@ import static org.apache.solr.handler.admin.CoreAdminHandler.RUNNING;
  * Known limitations: The source and target clusters must have the same topology. Replication between clusters
  * with a different number of shards will likely results in an inconsistent index.
  * </p>
+ * @deprecated since 8.6
  */
+@Deprecated(since = "8.6")
 public class CdcrRequestHandler extends RequestHandlerBase implements SolrCoreAware {
 
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@@ -133,6 +135,8 @@ public class CdcrRequestHandler extends RequestHandlerBase implements SolrCoreAw
   public void init(@SuppressWarnings({"rawtypes"})NamedList args) {
     super.init(args);
 
+    log.warn("CDCR (in its current form) is deprecated as of 8.6 and shall be removed in 9.0. See SOLR-14022 for details.");
+
     if (args != null) {
       // Configuration of the Update Log Synchronizer
       Object updateLogSynchonizerParam = args.get(CdcrParams.UPDATE_LOG_SYNCHRONIZER_PARAM);
diff --git a/solr/core/src/java/org/apache/solr/update/CdcrTransactionLog.java b/solr/core/src/java/org/apache/solr/update/CdcrTransactionLog.java
index fbf6861..86cee71 100644
--- a/solr/core/src/java/org/apache/solr/update/CdcrTransactionLog.java
+++ b/solr/core/src/java/org/apache/solr/update/CdcrTransactionLog.java
@@ -43,7 +43,9 @@ import org.slf4j.LoggerFactory;
  * decoded and reuse if the tlog file is reopened. This is achieved by extending the constructor, and the
  * methods {@link #writeCommit(CommitUpdateCommand)} and {@link #getReader(long)}.</li>
  * </ul>
+ * @deprecated since 8.6
  */
+@Deprecated(since = "8.6")
 public class CdcrTransactionLog extends TransactionLog {
 
   private boolean isReplaying;
diff --git a/solr/core/src/java/org/apache/solr/update/processor/CdcrUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/CdcrUpdateProcessor.java
index fe13a91..180784a 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/CdcrUpdateProcessor.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/CdcrUpdateProcessor.java
@@ -36,7 +36,9 @@ import org.slf4j.LoggerFactory;
  * for every updates. This ensures that the version parameter sent by the source cluster is kept
  * by the target cluster.
  * </p>
+ * @deprecated since 8.6
  */
+@Deprecated(since = "8.6")
 public class CdcrUpdateProcessor extends DistributedZkUpdateProcessor {
 
   public static final String CDCR_UPDATE = "cdcr.update";
diff --git a/solr/solr-ref-guide/src/cross-data-center-replication-cdcr.adoc b/solr/solr-ref-guide/src/cross-data-center-replication-cdcr.adoc
index 114d508..67747fd 100644
--- a/solr/solr-ref-guide/src/cross-data-center-replication-cdcr.adoc
+++ b/solr/solr-ref-guide/src/cross-data-center-replication-cdcr.adoc
@@ -17,6 +17,8 @@
 // specific language governing permissions and limitations
 // under the License.
 
+WARNING: This feature (in its current form) is deprecated as of 8.6 and shall be removed in 9.0. See SOLR-14022 for details.
+
 Cross Data Center Replication (CDCR) allows you to create multiple SolrCloud data centers and keep them in sync.
 
 == What is CDCR?
diff --git a/solr/solr-ref-guide/src/solr-upgrade-notes.adoc b/solr/solr-ref-guide/src/solr-upgrade-notes.adoc
index 1fbe747..1c1f154 100644
--- a/solr/solr-ref-guide/src/solr-upgrade-notes.adoc
+++ b/solr/solr-ref-guide/src/solr-upgrade-notes.adoc
@@ -85,6 +85,10 @@ For more information about how to use this, see the section <<exporting-result-s
 
 * The `stats`, `facet`, and `timeseries` expressions now support percentiles and standard deviation aggregations.
 
+*Deprecations* 
+
+* Cross Data Center Replication (CDCR), in its current form, is deprecated and is scheduled to be removed in 9.0. Please refer to SOLR-14022.
+
 === Solr 8.5
 
 See the https://cwiki.apache.org/confluence/display/SOLR/ReleaseNote85[8.5 Release Notes]