/* * 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.solr.handler; import java.nio.charset.Charset; import java.util.Locale; public class CdcrParams { /** * The definition of a replica configuration * */ public static final String REPLICA_PARAM = "replica"; /** * The source collection of a replica * */ public static final String SOURCE_COLLECTION_PARAM = "source"; /** * The target collection of a replica * */ public static final String TARGET_COLLECTION_PARAM = "target"; /** * The Zookeeper host of the target cluster hosting the replica * */ public static final String ZK_HOST_PARAM = "zkHost"; /** * The definition of the {@link org.apache.solr.handler.CdcrReplicatorScheduler} configuration * */ public static final String REPLICATOR_PARAM = "replicator"; /** * The thread pool size of the replicator * */ public static final String THREAD_POOL_SIZE_PARAM = "threadPoolSize"; /** * The time schedule (in ms) of the replicator * */ public static final String SCHEDULE_PARAM = "schedule"; /** * The batch size of the replicator * */ public static final String BATCH_SIZE_PARAM = "batchSize"; /** * The definition of the {@link org.apache.solr.handler.CdcrUpdateLogSynchronizer} configuration * */ public static final String UPDATE_LOG_SYNCHRONIZER_PARAM = "updateLogSynchronizer"; /** * The definition of the {@link org.apache.solr.handler.CdcrBufferManager} configuration * */ public static final String BUFFER_PARAM = "buffer"; /** * The default state at startup of the buffer * */ public static final String DEFAULT_STATE_PARAM = "defaultState"; /** * The latest update checkpoint on a target cluster * */ public final static String CHECKPOINT = "checkpoint"; /** * The last processed version on a source cluster * */ public final static String LAST_PROCESSED_VERSION = "lastProcessedVersion"; /** * A list of replica queues on a source cluster * */ public final static String QUEUES = "queues"; /** * The size of a replica queue on a source cluster * */ public final static String QUEUE_SIZE = "queueSize"; /** * The timestamp of the last processed operation in a replica queue * */ public final static String LAST_TIMESTAMP = "lastTimestamp"; /** * A list of qps statistics per collection * */ public final static String OPERATIONS_PER_SECOND = "operationsPerSecond"; /** * Overall counter * */ public final static String COUNTER_ALL = "all"; /** * Counter for Adds * */ public final static String COUNTER_ADDS = "adds"; /** * Counter for Deletes * */ public final static String COUNTER_DELETES = "deletes"; /** * Counter for Bootstrap operations * */ public final static String COUNTER_BOOTSTRAP = "bootstraps"; /** * A list of errors per target collection * */ public final static String ERRORS = "errors"; /** * Counter for consecutive errors encountered by a replicator thread * */ public final static String CONSECUTIVE_ERRORS = "consecutiveErrors"; /** * A list of the last errors encountered by a replicator thread * */ public final static String LAST = "last"; /** * Total size of transaction logs * */ public final static String TLOG_TOTAL_SIZE = "tlogTotalSize"; /** * Total count of transaction logs * */ public final static String TLOG_TOTAL_COUNT = "tlogTotalCount"; /** * The state of the update log synchronizer * */ public final static String UPDATE_LOG_SYNCHRONIZER = "updateLogSynchronizer"; /** * The actions supported by the CDCR API */ public enum CdcrAction { START, STOP, STATUS, COLLECTIONCHECKPOINT, SHARDCHECKPOINT, ENABLEBUFFER, DISABLEBUFFER, LASTPROCESSEDVERSION, QUEUES, OPS, ERRORS, BOOTSTRAP, BOOTSTRAP_STATUS, CANCEL_BOOTSTRAP; public static CdcrAction get(String p) { if (p != null) { try { return CdcrAction.valueOf(p.toUpperCase(Locale.ROOT)); } catch (Exception e) { } } return null; } public String toLower() { return toString().toLowerCase(Locale.ROOT); } } /** * The possible states of the CDCR process */ public enum ProcessState { STARTED, STOPPED; public static ProcessState get(byte[] state) { if (state != null) { try { return ProcessState.valueOf(new String(state, Charset.forName("UTF-8")).toUpperCase(Locale.ROOT)); } catch (Exception e) { } } return null; } public String toLower() { return toString().toLowerCase(Locale.ROOT); } public byte[] getBytes() { return toLower().getBytes(Charset.forName("UTF-8")); } public static String getParam() { return "process"; } } /** * The possible states of the CDCR buffer */ public enum BufferState { ENABLED, DISABLED; public static BufferState get(byte[] state) { if (state != null) { try { return BufferState.valueOf(new String(state, Charset.forName("UTF-8")).toUpperCase(Locale.ROOT)); } catch (Exception e) { } } return null; } public String toLower() { return toString().toLowerCase(Locale.ROOT); } public byte[] getBytes() { return toLower().getBytes(Charset.forName("UTF-8")); } public static String getParam() { return "buffer"; } } }