blob: f74bee1bbc5bf334ecefeeb6c7a77c61f518a5ac [file] [log] [blame]
/*
* 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.phoenix.coprocessorclient;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.phoenix.schema.types.PUnsignedTinyint;
public class BaseScannerRegionObserverConstants {
public enum ReplayWrite {
TABLE_AND_INDEX,
INDEX_ONLY,
REBUILD_INDEX_ONLY;
public static ReplayWrite fromBytes(byte[] replayWriteBytes) {
if (replayWriteBytes == null) {
return null;
}
if (Bytes.compareTo(BaseScannerRegionObserverConstants.REPLAY_TABLE_AND_INDEX_WRITES, replayWriteBytes) == 0) {
return TABLE_AND_INDEX;
}
if (Bytes.compareTo(BaseScannerRegionObserverConstants.REPLAY_ONLY_INDEX_WRITES, replayWriteBytes) == 0) {
return INDEX_ONLY;
}
if (Bytes.compareTo(BaseScannerRegionObserverConstants.REPLAY_INDEX_REBUILD_WRITES, replayWriteBytes) == 0) {
return REBUILD_INDEX_ONLY;
}
throw new IllegalArgumentException("Unknown ReplayWrite code of " + Bytes.toStringBinary(replayWriteBytes));
}
}
public static long getMaxLookbackInMillis(Configuration conf){
//config param is in seconds, switch to millis
return conf.getLong(BaseScannerRegionObserverConstants.PHOENIX_MAX_LOOKBACK_AGE_CONF_KEY,
BaseScannerRegionObserverConstants.DEFAULT_PHOENIX_MAX_LOOKBACK_AGE) * 1000;
}
public static final String AGGREGATORS = "_Aggs";
public static final String UNORDERED_GROUP_BY_EXPRESSIONS = "_UnorderedGroupByExpressions";
public static final String KEY_ORDERED_GROUP_BY_EXPRESSIONS = "_OrderedGroupByExpressions";
public static final String ESTIMATED_DISTINCT_VALUES = "_EstDistinctValues";
public static final String NON_AGGREGATE_QUERY = "_NonAggregateQuery";
public static final String TOPN = "_TopN";
public static final String UNGROUPED_AGG = "_UngroupedAgg";
public static final String DELETE_AGG = "_DeleteAgg";
public static final String UPSERT_SELECT_TABLE = "_UpsertSelectTable";
public static final String UPSERT_SELECT_EXPRS = "_UpsertSelectExprs";
public static final String DELETE_CQ = "_DeleteCQ";
public static final String DELETE_CF = "_DeleteCF";
public static final String EMPTY_CF = "_EmptyCF";
public static final String EMPTY_COLUMN_QUALIFIER = "_EmptyColumnQualifier";
public static final String SPECIFIC_ARRAY_INDEX = "_SpecificArrayIndex";
public static final String GROUP_BY_LIMIT = "_GroupByLimit";
public static final String LOCAL_INDEX = "_LocalIndex";
public static final String LOCAL_INDEX_BUILD = "_LocalIndexBuild";
public static final String UNCOVERED_GLOBAL_INDEX = "_UncoveredGlobalIndex";
public static final String INDEX_REBUILD_PAGING = "_IndexRebuildPaging";
// The number of index rows to be rebuild in one RPC call
public static final String INDEX_REBUILD_PAGE_ROWS = "_IndexRebuildPageRows";
public static final String INDEX_PAGE_ROWS = "_IndexPageRows";
public static final String SERVER_PAGE_SIZE_MS = "_ServerPageSizeMs";
// Index verification type done by the index tool
public static final String INDEX_REBUILD_VERIFY_TYPE = "_IndexRebuildVerifyType";
public static final String INDEX_RETRY_VERIFY = "_IndexRetryVerify";
public static final String INDEX_REBUILD_DISABLE_LOGGING_VERIFY_TYPE =
"_IndexRebuildDisableLoggingVerifyType";
public static final String INDEX_REBUILD_DISABLE_LOGGING_BEYOND_MAXLOOKBACK_AGE =
"_IndexRebuildDisableLoggingBeyondMaxLookbackAge";
@Deprecated
public static final String LOCAL_INDEX_FILTER = "_LocalIndexFilter";
@Deprecated
public static final String LOCAL_INDEX_LIMIT = "_LocalIndexLimit";
@Deprecated
public static final String LOCAL_INDEX_FILTER_STR = "_LocalIndexFilterStr";
public static final String INDEX_FILTER = "_IndexFilter";
public static final String INDEX_LIMIT = "_IndexLimit";
public static final String INDEX_FILTER_STR = "_IndexFilterStr";
public static final String JSON_VALUE_FUNCTION = "_JsonValueFunction";
public static final String JSON_QUERY_FUNCTION = "_JsonQueryFunction";
/*
* Attribute to denote that the index maintainer has been serialized using its proto-buf presentation.
* Needed for backward compatibility purposes. TODO: get rid of this in next major release.
*/
public static final String LOCAL_INDEX_BUILD_PROTO = "_LocalIndexBuild";
public static final String LOCAL_INDEX_JOIN_SCHEMA = "_LocalIndexJoinSchema";
public static final String DATA_TABLE_COLUMNS_TO_JOIN = "_DataTableColumnsToJoin";
public static final String COLUMNS_STORED_IN_SINGLE_CELL = "_ColumnsStoredInSingleCell";
public static final String VIEW_CONSTANTS = "_ViewConstants";
public static final String EXPECTED_UPPER_REGION_KEY = "_ExpectedUpperRegionKey";
public static final String REVERSE_SCAN = "_ReverseScan";
public static final String ANALYZE_TABLE = "_ANALYZETABLE";
public static final String REBUILD_INDEXES = "_RebuildIndexes";
public static final String DO_TRANSFORMING = "_DoTransforming";
public static final String TX_STATE = "_TxState";
public static final String GUIDEPOST_WIDTH_BYTES = "_GUIDEPOST_WIDTH_BYTES";
public static final String GUIDEPOST_PER_REGION = "_GUIDEPOST_PER_REGION";
public static final String UPGRADE_DESC_ROW_KEY = "_UPGRADE_DESC_ROW_KEY";
public static final String SCAN_REGION_SERVER = "_SCAN_REGION_SERVER";
public static final String RUN_UPDATE_STATS_ASYNC_ATTRIB = "_RunUpdateStatsAsync";
public static final String SKIP_REGION_BOUNDARY_CHECK = "_SKIP_REGION_BOUNDARY_CHECK";
public static final String TX_SCN = "_TxScn";
public static final String PHOENIX_TTL = "_PhoenixTTL";
public static final String MASK_PHOENIX_TTL_EXPIRED = "_MASK_TTL_EXPIRED";
public static final String DELETE_PHOENIX_TTL_EXPIRED = "_DELETE_TTL_EXPIRED";
public static final String PHOENIX_TTL_SCAN_TABLE_NAME = "_PhoenixTTLScanTableName";
public static final String SCAN_ACTUAL_START_ROW = "_ScanActualStartRow";
public static final String REPLAY_WRITES = "_IGNORE_NEWER_MUTATIONS";
public final static String SCAN_OFFSET = "_RowOffset";
public static final String SCAN_START_ROW_SUFFIX = "_ScanStartRowSuffix";
public static final String SCAN_STOP_ROW_SUFFIX = "_ScanStopRowSuffix";
public final static String MIN_QUALIFIER = "_MinQualifier";
public final static String MAX_QUALIFIER = "_MaxQualifier";
public final static String USE_NEW_VALUE_COLUMN_QUALIFIER = "_UseNewValueColumnQualifier";
public final static String QUALIFIER_ENCODING_SCHEME = "_QualifierEncodingScheme";
public final static String IMMUTABLE_STORAGE_ENCODING_SCHEME = "_ImmutableStorageEncodingScheme";
public final static String USE_ENCODED_COLUMN_QUALIFIER_LIST = "_UseEncodedColumnQualifierList";
public static final String CLIENT_VERSION = "_ClientVersion";
public static final String CHECK_VERIFY_COLUMN = "_CheckVerifyColumn";
public static final String PHYSICAL_DATA_TABLE_NAME = "_PhysicalDataTableName";
public static final String EMPTY_COLUMN_FAMILY_NAME = "_EmptyCFName";
public static final String EMPTY_COLUMN_QUALIFIER_NAME = "_EmptyCQName";
public static final String INDEX_ROW_KEY = "_IndexRowKey";
public static final String READ_REPAIR_TRANSFORMING_TABLE = "_ReadRepairTransformingTable";
public static final String MAX_LOOKBACK_AGE = "MAX_LOOKBACK_AGE";
/**
* The scan attribute to provide the scan start rowkey for analyze table queries.
*/
public static final String SCAN_ANALYZE_ACTUAL_START_ROW = "_ScanAnalyzeActualStartRow";
/**
* The scan attribute to provide the scan stop rowkey for analyze table queries.
*/
public static final String SCAN_ANALYZE_ACTUAL_STOP_ROW = "_ScanAnalyzeActualStopRow";
/**
* The scan attribute to provide the scan start rowkey include boolean value for analyze table
* queries.
*/
public static final String SCAN_ANALYZE_INCLUDE_START_ROW = "_ScanAnalyzeIncludeStartRow";
/**
* The scan attribute to provide the scan stop rowkey include boolean value for analyze table
* queries.
*/
public static final String SCAN_ANALYZE_INCLUDE_STOP_ROW = "_ScanAnalyzeIncludeStopRow";
/**
* The scan attribute to determine whether client changes are compatible to consume
* new format changes sent by the server. This attribute is mainly used to address
* data integrity issues related to region moves (PHOENIX-7106).
*/
public static final String SCAN_SERVER_RETURN_VALID_ROW_KEY = "_ScanServerValidRowKey";
public final static byte[] REPLAY_TABLE_AND_INDEX_WRITES = PUnsignedTinyint.INSTANCE.toBytes(1);
public final static byte[] REPLAY_ONLY_INDEX_WRITES = PUnsignedTinyint.INSTANCE.toBytes(2);
// In case of Index Write failure, we need to determine that Index mutation
// is part of normal client write or Index Rebuilder. # PHOENIX-5080
public final static byte[] REPLAY_INDEX_REBUILD_WRITES = PUnsignedTinyint.INSTANCE.toBytes(3);
public static final String PHOENIX_MAX_LOOKBACK_AGE_CONF_KEY =
"phoenix.max.lookback.age.seconds";
public static final int DEFAULT_PHOENIX_MAX_LOOKBACK_AGE = 0;
/**
* Attribute name used to pass custom annotations in Scans and Mutations (later). Custom annotations
* are used to augment log lines emitted by Phoenix. See https://issues.apache.org/jira/browse/PHOENIX-1198.
*/
public static final String CUSTOM_ANNOTATIONS = "_Annot";
/** Exposed for testing */
public static final String SCANNER_OPENED_TRACE_INFO = "Scanner opened on server";
}