/* * The Alluxio Open Foundation licenses this work under the Apache License, version 2.0 * (the "License"). You may not use this work except in compliance with the License, which is * available at www.apache.org/licenses/LICENSE-2.0 * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied, as more fully set forth in the License. * * See the NOTICE file distributed with this work for information regarding copyright ownership. */ package alluxio; import alluxio.exception.ExceptionMessage; import com.google.common.base.Objects; import com.google.common.base.Preconditions; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.annotation.concurrent.ThreadSafe; /** * Configuration property keys. This class provides a set of pre-defined property keys. */ @ThreadSafe public class PropertyKey { // The following two maps must be the first to initialize within this file. /** A map from default property key's string name to the key. */ private static final Map<String, PropertyKey> DEFAULT_KEYS_MAP = new HashMap<>(); /** A map from default property key's string name to the key. */ private static final Map<PropertyKey, Object> DEFAULT_VALUES = new HashMap<>(); public static final PropertyKey CONF_DIR = create(Name.CONF_DIR, String.format("${%s}/conf", Name.HOME)); public static final PropertyKey DEBUG = create(Name.DEBUG, false); public static final PropertyKey HOME = create(Name.HOME, "/opt/alluxio"); public static final PropertyKey KEY_VALUE_ENABLED = create(Name.KEY_VALUE_ENABLED, false); public static final PropertyKey KEY_VALUE_PARTITION_SIZE_BYTES_MAX = create(Name.KEY_VALUE_PARTITION_SIZE_BYTES_MAX, "512MB"); public static final PropertyKey LOGGER_TYPE = create(Name.LOGGER_TYPE, "Console"); public static final PropertyKey LOGS_DIR = create(Name.LOGS_DIR, String.format("${%s}/logs", Name.WORK_DIR)); public static final PropertyKey METRICS_CONF_FILE = create(Name.METRICS_CONF_FILE, String.format("${%s}/metrics.properties", Name.CONF_DIR)); public static final PropertyKey NETWORK_HOST_RESOLUTION_TIMEOUT_MS = create(Name.NETWORK_HOST_RESOLUTION_TIMEOUT_MS, 5000); public static final PropertyKey NETWORK_NETTY_HEARTBEAT_TIMEOUT_MS = create(Name.NETWORK_NETTY_HEARTBEAT_TIMEOUT_MS, 30000); public static final PropertyKey NETWORK_THRIFT_FRAME_SIZE_BYTES_MAX = create(Name.NETWORK_THRIFT_FRAME_SIZE_BYTES_MAX, "16MB"); public static final PropertyKey SITE_CONF_DIR = create(Name.SITE_CONF_DIR, "${user.home}/.alluxio/,/etc/alluxio/"); public static final PropertyKey TEST_MODE = create(Name.TEST_MODE, false); public static final PropertyKey VERSION = create(Name.VERSION, ProjectConstants.VERSION); public static final PropertyKey WEB_RESOURCES = create(Name.WEB_RESOURCES, String.format("${%s}/core/server/common/src/main/webapp", Name.HOME)); public static final PropertyKey WEB_THREADS = create(Name.WEB_THREADS, 1); public static final PropertyKey WORK_DIR = create(Name.WORK_DIR, String.format("${%s}", Name.HOME)); public static final PropertyKey ZOOKEEPER_ADDRESS = create(Name.ZOOKEEPER_ADDRESS, null); public static final PropertyKey ZOOKEEPER_ELECTION_PATH = create(Name.ZOOKEEPER_ELECTION_PATH, "/election"); public static final PropertyKey ZOOKEEPER_ENABLED = create(Name.ZOOKEEPER_ENABLED, false); public static final PropertyKey ZOOKEEPER_LEADER_INQUIRY_RETRY_COUNT = create(Name.ZOOKEEPER_LEADER_INQUIRY_RETRY_COUNT, 10); public static final PropertyKey ZOOKEEPER_LEADER_PATH = create(Name.ZOOKEEPER_LEADER_PATH, "/leader"); /** * UFS related properties. * * @deprecated since 1.5.0 and will be removed in 2.0. Use MASTER_MOUNT_TABLE_ROOT_UFS instead. */ @Deprecated public static final PropertyKey UNDERFS_ADDRESS = create(Name.UNDERFS_ADDRESS, String.format("${%s}/underFSStorage", Name.WORK_DIR)); public static final PropertyKey UNDERFS_ALLOW_SET_OWNER_FAILURE = create(Name.UNDERFS_ALLOW_SET_OWNER_FAILURE, false); public static final PropertyKey UNDERFS_LISTING_LENGTH = create(Name.UNDERFS_LISTING_LENGTH, 1000); public static final PropertyKey UNDERFS_GCS_OWNER_ID_TO_USERNAME_MAPPING = create(Name.UNDERFS_GCS_OWNER_ID_TO_USERNAME_MAPPING, ""); public static final PropertyKey UNDERFS_GLUSTERFS_IMPL = create(Name.UNDERFS_GLUSTERFS_IMPL, "org.apache.hadoop.fs.glusterfs.GlusterFileSystem"); public static final PropertyKey UNDERFS_GLUSTERFS_MOUNTS = create(Name.UNDERFS_GLUSTERFS_MOUNTS, null); public static final PropertyKey UNDERFS_GLUSTERFS_MR_DIR = create(Name.UNDERFS_GLUSTERFS_MR_DIR, "glusterfs:///mapred/system"); public static final PropertyKey UNDERFS_GLUSTERFS_VOLUMES = create(Name.UNDERFS_GLUSTERFS_VOLUMES, null); public static final PropertyKey UNDERFS_HDFS_CONFIGURATION = create(Name.UNDERFS_HDFS_CONFIGURATION, String.format("${%s}/core-site.xml", Name.CONF_DIR)); public static final PropertyKey UNDERFS_HDFS_IMPL = create(Name.UNDERFS_HDFS_IMPL, "org.apache.hadoop.hdfs.DistributedFileSystem"); public static final PropertyKey UNDERFS_HDFS_PREFIXES = create(Name.UNDERFS_HDFS_PREFIXES, "hdfs://,glusterfs:///,maprfs:///"); public static final PropertyKey UNDERFS_HDFS_REMOTE = create(Name.UNDERFS_HDFS_REMOTE, false); public static final PropertyKey UNDERFS_OBJECT_STORE_SERVICE_THREADS = create(Name.UNDERFS_OBJECT_STORE_SERVICE_THREADS, 20); public static final PropertyKey UNDERFS_OBJECT_STORE_MOUNT_SHARED_PUBLICLY = create(Name.UNDERFS_OBJECT_STORE_MOUNT_SHARED_PUBLICLY, false); public static final PropertyKey UNDERFS_OSS_CONNECT_MAX = create(Name.UNDERFS_OSS_CONNECT_MAX, 1024); public static final PropertyKey UNDERFS_OSS_CONNECT_TIMEOUT = create(Name.UNDERFS_OSS_CONNECT_TIMEOUT, 50000); public static final PropertyKey UNDERFS_OSS_CONNECT_TTL = create(Name.UNDERFS_OSS_CONNECT_TTL, -1); public static final PropertyKey UNDERFS_OSS_SOCKET_TIMEOUT = create(Name.UNDERFS_OSS_SOCKET_TIMEOUT, 50000); public static final PropertyKey UNDERFS_S3_ADMIN_THREADS_MAX = create(Name.UNDERFS_S3_ADMIN_THREADS_MAX, 20); public static final PropertyKey UNDERFS_S3_DISABLE_DNS_BUCKETS = create(Name.UNDERFS_S3_DISABLE_DNS_BUCKETS, false); public static final PropertyKey UNDERFS_S3_ENDPOINT = create(Name.UNDERFS_S3_ENDPOINT, null); public static final PropertyKey UNDERFS_S3_ENDPOINT_HTTP_PORT = create(Name.UNDERFS_S3_ENDPOINT_HTTP_PORT, null); public static final PropertyKey UNDERFS_S3_ENDPOINT_HTTPS_PORT = create(Name.UNDERFS_S3_ENDPOINT_HTTPS_PORT, null); public static final PropertyKey UNDERFS_S3_OWNER_ID_TO_USERNAME_MAPPING = create(Name.UNDERFS_S3_OWNER_ID_TO_USERNAME_MAPPING, ""); public static final PropertyKey UNDERFS_S3_PROXY_HOST = create(Name.UNDERFS_S3_PROXY_HOST, null); public static final PropertyKey UNDERFS_S3_PROXY_HTTPS_ONLY = create(Name.UNDERFS_S3_PROXY_HTTPS_ONLY, true); public static final PropertyKey UNDERFS_S3_PROXY_PORT = create(Name.UNDERFS_S3_PROXY_PORT, null); public static final PropertyKey UNDERFS_S3_THREADS_MAX = create(Name.UNDERFS_S3_THREADS_MAX, 40); public static final PropertyKey UNDERFS_S3_UPLOAD_THREADS_MAX = create(Name.UNDERFS_S3_UPLOAD_THREADS_MAX, 20); public static final PropertyKey UNDERFS_S3A_CONSISTENCY_TIMEOUT_MS = create(Name.UNDERFS_S3A_CONSISTENCY_TIMEOUT_MS, 60000); public static final PropertyKey UNDERFS_S3A_DIRECTORY_SUFFIX = create(Name.UNDERFS_S3A_DIRECTORY_SUFFIX, "/"); public static final PropertyKey UNDERFS_S3A_INHERIT_ACL = create(Name.UNDERFS_S3A_INHERIT_ACL, true); public static final PropertyKey UNDERFS_S3A_REQUEST_TIMEOUT = create(Name.UNDERFS_S3A_REQUEST_TIMEOUT_MS, 60000); public static final PropertyKey UNDERFS_S3A_SECURE_HTTP_ENABLED = create(Name.UNDERFS_S3A_SECURE_HTTP_ENABLED, false); public static final PropertyKey UNDERFS_S3A_SERVER_SIDE_ENCRYPTION_ENABLED = create(Name.UNDERFS_S3A_SERVER_SIDE_ENCRYPTION_ENABLED, false); public static final PropertyKey UNDERFS_S3A_SIGNER_ALGORITHM = create(Name.UNDERFS_S3A_SIGNER_ALGORITHM, null); public static final PropertyKey UNDERFS_S3A_SOCKET_TIMEOUT_MS = create(Name.UNDERFS_S3A_SOCKET_TIMEOUT_MS, 50000); // // UFS access control related properties // // Not prefixed with fs, the s3a property names mirror the aws-sdk property names for ease of use public static final PropertyKey GCS_ACCESS_KEY = create(Name.GCS_ACCESS_KEY, null); public static final PropertyKey GCS_SECRET_KEY = create(Name.GCS_SECRET_KEY, null); public static final PropertyKey OSS_ACCESS_KEY = create(Name.OSS_ACCESS_KEY, null); public static final PropertyKey OSS_ENDPOINT_KEY = create(Name.OSS_ENDPOINT_KEY, null); public static final PropertyKey OSS_SECRET_KEY = create(Name.OSS_SECRET_KEY, null); public static final PropertyKey S3A_ACCESS_KEY = create(Name.S3A_ACCESS_KEY, null); public static final PropertyKey S3A_SECRET_KEY = create(Name.S3A_SECRET_KEY, null); public static final PropertyKey S3N_ACCESS_KEY = create(Name.S3N_ACCESS_KEY, null); public static final PropertyKey S3N_SECRET_KEY = create(Name.S3N_SECRET_KEY, null); public static final PropertyKey SWIFT_API_KEY = create(Name.SWIFT_API_KEY, null); public static final PropertyKey SWIFT_AUTH_METHOD_KEY = create(Name.SWIFT_AUTH_METHOD_KEY, null); public static final PropertyKey SWIFT_AUTH_URL_KEY = create(Name.SWIFT_AUTH_URL_KEY, null); public static final PropertyKey SWIFT_PASSWORD_KEY = create(Name.SWIFT_PASSWORD_KEY, null); public static final PropertyKey SWIFT_SIMULATION = create(Name.SWIFT_SIMULATION, null); public static final PropertyKey SWIFT_TENANT_KEY = create(Name.SWIFT_TENANT_KEY, null); public static final PropertyKey SWIFT_USE_PUBLIC_URI_KEY = create(Name.SWIFT_USE_PUBLIC_URI_KEY, null); public static final PropertyKey SWIFT_USER_KEY = create(Name.SWIFT_USER_KEY, null); public static final PropertyKey SWIFT_REGION_KEY = create(Name.SWIFT_REGION_KEY, null); // // Mount table related properties // public static final PropertyKey MASTER_MOUNT_TABLE_ROOT_ALLUXIO = create(Template.MASTER_MOUNT_TABLE_ALLUXIO, "/", "root"); public static final PropertyKey MASTER_MOUNT_TABLE_ROOT_OPTION = create(Template.MASTER_MOUNT_TABLE_OPTION, null, "root"); public static final PropertyKey MASTER_MOUNT_TABLE_ROOT_READONLY = create(Template.MASTER_MOUNT_TABLE_READONLY, false, "root"); public static final PropertyKey MASTER_MOUNT_TABLE_ROOT_SHARED = create(Template.MASTER_MOUNT_TABLE_SHARED, true, "root"); public static final PropertyKey MASTER_MOUNT_TABLE_ROOT_UFS = create(Template.MASTER_MOUNT_TABLE_UFS, String.format("${%s}", Name.UNDERFS_ADDRESS), "root"); /** * Master related properties. * * @deprecated since version 1.3 and will be removed in version 2.0, use MASTER_HOSTNAME instead. */ @Deprecated public static final PropertyKey MASTER_ADDRESS = create(Name.MASTER_ADDRESS, null); public static final PropertyKey MASTER_BIND_HOST = create(Name.MASTER_BIND_HOST, "0.0.0.0"); public static final PropertyKey MASTER_CONNECTION_TIMEOUT_MS = create(Name.MASTER_CONNECTION_TIMEOUT_MS, 0); public static final PropertyKey MASTER_FILE_ASYNC_PERSIST_HANDLER = create(Name.MASTER_FILE_ASYNC_PERSIST_HANDLER, "alluxio.master.file.async.DefaultAsyncPersistHandler"); public static final PropertyKey MASTER_FORMAT_FILE_PREFIX = create(Name.MASTER_FORMAT_FILE_PREFIX, "_format_"); public static final PropertyKey MASTER_HEARTBEAT_INTERVAL_MS = create(Name.MASTER_HEARTBEAT_INTERVAL_MS, 1000); public static final PropertyKey MASTER_HOSTNAME = create(Name.MASTER_HOSTNAME, null); public static final PropertyKey MASTER_JOURNAL_FLUSH_BATCH_TIME_MS = create(Name.MASTER_JOURNAL_FLUSH_BATCH_TIME_MS, 5); public static final PropertyKey MASTER_JOURNAL_FLUSH_TIMEOUT_MS = create(Name.MASTER_JOURNAL_FLUSH_TIMEOUT_MS, 300000); public static final PropertyKey MASTER_JOURNAL_FOLDER = create(Name.MASTER_JOURNAL_FOLDER, String.format("${%s}/journal", Name.WORK_DIR)); /** * @deprecated since 1.5.0 and will be removed in 2.0. */ @Deprecated public static final PropertyKey MASTER_JOURNAL_FORMATTER_CLASS = create(Name.MASTER_JOURNAL_FORMATTER_CLASS, "alluxio.master.journalv0.ProtoBufJournalFormatter"); public static final PropertyKey MASTER_JOURNAL_LOG_SIZE_BYTES_MAX = create(Name.MASTER_JOURNAL_LOG_SIZE_BYTES_MAX, "10MB"); public static final PropertyKey MASTER_JOURNAL_TAILER_SHUTDOWN_QUIET_WAIT_TIME_MS = create(Name.MASTER_JOURNAL_TAILER_SHUTDOWN_QUIET_WAIT_TIME_MS, 5000); public static final PropertyKey MASTER_JOURNAL_TAILER_SLEEP_TIME_MS = create(Name.MASTER_JOURNAL_TAILER_SLEEP_TIME_MS, 1000); public static final PropertyKey MASTER_JOURNAL_CHECKPOINT_PERIOD_ENTRIES = create(Name.MASTER_JOURNAL_CHECKPOINT_PERIOD_ENTRIES, 2000000); public static final PropertyKey MASTER_JOURNAL_GC_PERIOD_MS = create(Name.MASTER_JOURNAL_GC_PERIOD_MS, 120000); public static final PropertyKey MASTER_JOURNAL_GC_THRESHOLD_MS = create(Name.MASTER_JOURNAL_GC_THRESHOLD_MS, 300000); public static final PropertyKey MASTER_JOURNAL_TEMPORARY_FILE_GC_THRESHOLD_MS = create(Name.MASTER_JOURNAL_TEMPORARY_FILE_GC_THRESHOLD_MS, 1800000); public static final PropertyKey MASTER_KEYTAB_KEY_FILE = create(Name.MASTER_KEYTAB_KEY_FILE, null); public static final PropertyKey MASTER_LINEAGE_CHECKPOINT_CLASS = create(Name.MASTER_LINEAGE_CHECKPOINT_CLASS, "alluxio.master.lineage.checkpoint.CheckpointLatestPlanner"); public static final PropertyKey MASTER_LINEAGE_CHECKPOINT_INTERVAL_MS = create(Name.MASTER_LINEAGE_CHECKPOINT_INTERVAL_MS, 300000); public static final PropertyKey MASTER_LINEAGE_RECOMPUTE_INTERVAL_MS = create(Name.MASTER_LINEAGE_RECOMPUTE_INTERVAL_MS, 300000); public static final PropertyKey MASTER_LINEAGE_RECOMPUTE_LOG_PATH = create(Name.MASTER_LINEAGE_RECOMPUTE_LOG_PATH, String.format("${%s}/recompute.log", Name.LOGS_DIR)); public static final PropertyKey MASTER_PRINCIPAL = create(Name.MASTER_PRINCIPAL, null); /** * @deprecated since version 1.4 and will be removed in version 2.0, * use USER_RPC_RETRY_MAX_NUM_RETRY instead. */ @Deprecated public static final PropertyKey MASTER_RETRY = create(Name.MASTER_RETRY, String.format("${%s}", Name.USER_RPC_RETRY_MAX_NUM_RETRY)); public static final PropertyKey MASTER_RPC_PORT = create(Name.MASTER_RPC_PORT, 19998); public static final PropertyKey MASTER_STARTUP_CONSISTENCY_CHECK_ENABLED = create(Name.MASTER_STARTUP_CONSISTENCY_CHECK_ENABLED, true); public static final PropertyKey MASTER_TIERED_STORE_GLOBAL_LEVEL0_ALIAS = create(Name.MASTER_TIERED_STORE_GLOBAL_LEVEL0_ALIAS, "MEM"); public static final PropertyKey MASTER_TIERED_STORE_GLOBAL_LEVEL1_ALIAS = create(Name.MASTER_TIERED_STORE_GLOBAL_LEVEL1_ALIAS, "SSD"); public static final PropertyKey MASTER_TIERED_STORE_GLOBAL_LEVEL2_ALIAS = create(Name.MASTER_TIERED_STORE_GLOBAL_LEVEL2_ALIAS, "HDD"); public static final PropertyKey MASTER_TIERED_STORE_GLOBAL_LEVELS = create(Name.MASTER_TIERED_STORE_GLOBAL_LEVELS, 3); public static final PropertyKey MASTER_TTL_CHECKER_INTERVAL_MS = create(Name.MASTER_TTL_CHECKER_INTERVAL_MS, 3600000); public static final PropertyKey MASTER_UFS_PATH_CACHE_CAPACITY = create(Name.MASTER_UFS_PATH_CACHE_CAPACITY, 100000); public static final PropertyKey MASTER_WEB_BIND_HOST = create(Name.MASTER_WEB_BIND_HOST, "0.0.0.0"); public static final PropertyKey MASTER_WEB_HOSTNAME = create(Name.MASTER_WEB_HOSTNAME, null); public static final PropertyKey MASTER_WEB_PORT = create(Name.MASTER_WEB_PORT, 19999); public static final PropertyKey MASTER_WHITELIST = create(Name.MASTER_WHITELIST, "/"); public static final PropertyKey MASTER_WORKER_THREADS_MAX = create(Name.MASTER_WORKER_THREADS_MAX, 2048); public static final PropertyKey MASTER_WORKER_THREADS_MIN = create(Name.MASTER_WORKER_THREADS_MIN, 512); public static final PropertyKey MASTER_WORKER_TIMEOUT_MS = create(Name.MASTER_WORKER_TIMEOUT_MS, 300000); // // Worker related properties // public static final PropertyKey WORKER_ALLOCATOR_CLASS = create(Name.WORKER_ALLOCATOR_CLASS, "alluxio.worker.block.allocator.MaxFreeAllocator"); public static final PropertyKey WORKER_BIND_HOST = create(Name.WORKER_BIND_HOST, "0.0.0.0"); public static final PropertyKey WORKER_BLOCK_HEARTBEAT_INTERVAL_MS = create(Name.WORKER_BLOCK_HEARTBEAT_INTERVAL_MS, 1000); public static final PropertyKey WORKER_BLOCK_HEARTBEAT_TIMEOUT_MS = create(Name.WORKER_BLOCK_HEARTBEAT_TIMEOUT_MS, 60000); public static final PropertyKey WORKER_BLOCK_THREADS_MAX = create(Name.WORKER_BLOCK_THREADS_MAX, 2048); public static final PropertyKey WORKER_BLOCK_THREADS_MIN = create(Name.WORKER_BLOCK_THREADS_MIN, 256); public static final PropertyKey WORKER_DATA_BIND_HOST = create(Name.WORKER_DATA_BIND_HOST, "0.0.0.0"); public static final PropertyKey WORKER_DATA_FOLDER = create(Name.WORKER_DATA_FOLDER, "/alluxioworker/"); public static final PropertyKey WORKER_DATA_HOSTNAME = create(Name.WORKER_DATA_HOSTNAME, null); public static final PropertyKey WORKER_DATA_PORT = create(Name.WORKER_DATA_PORT, 29999); public static final PropertyKey WORKER_DATA_SERVER_CLASS = create(Name.WORKER_DATA_SERVER_CLASS, "alluxio.worker.netty.NettyDataServer"); public static final PropertyKey WORKER_DATA_SERVER_DOMAIN_SOCKET_ADDRESS = create(Name.WORKER_DATA_SERVER_DOMAIN_SOCKET_ADDRESS, ""); public static final PropertyKey WORKER_DATA_TMP_FOLDER = create(Name.WORKER_DATA_TMP_FOLDER, ".tmp_blocks"); public static final PropertyKey WORKER_DATA_TMP_SUBDIR_MAX = create(Name.WORKER_DATA_TMP_SUBDIR_MAX, 1024); public static final PropertyKey WORKER_EVICTOR_CLASS = create(Name.WORKER_EVICTOR_CLASS, "alluxio.worker.block.evictor.LRUEvictor"); public static final PropertyKey WORKER_EVICTOR_LRFU_ATTENUATION_FACTOR = create(Name.WORKER_EVICTOR_LRFU_ATTENUATION_FACTOR, 2.0); public static final PropertyKey WORKER_EVICTOR_LRFU_STEP_FACTOR = create(Name.WORKER_EVICTOR_LRFU_STEP_FACTOR, 0.25); public static final PropertyKey WORKER_FILE_PERSIST_POOL_SIZE = create(Name.WORKER_FILE_PERSIST_POOL_SIZE, 64); public static final PropertyKey WORKER_FILE_PERSIST_RATE_LIMIT = create(Name.WORKER_FILE_PERSIST_RATE_LIMIT, "2GB"); public static final PropertyKey WORKER_FILE_PERSIST_RATE_LIMIT_ENABLED = create(Name.WORKER_FILE_PERSIST_RATE_LIMIT_ENABLED, false); public static final PropertyKey WORKER_FILE_BUFFER_SIZE = create(Name.WORKER_FILE_BUFFER_SIZE, "1MB"); public static final PropertyKey WORKER_FILESYSTEM_HEARTBEAT_INTERVAL_MS = create(Name.WORKER_FILESYSTEM_HEARTBEAT_INTERVAL_MS, 1000); public static final PropertyKey WORKER_HOSTNAME = create(Name.WORKER_HOSTNAME, null); public static final PropertyKey WORKER_KEYTAB_FILE = create(Name.WORKER_KEYTAB_FILE, null); public static final PropertyKey WORKER_MEMORY_SIZE = create(Name.WORKER_MEMORY_SIZE, "1GB"); public static final PropertyKey WORKER_NETWORK_NETTY_BACKLOG = create(Name.WORKER_NETWORK_NETTY_BACKLOG, null); public static final PropertyKey WORKER_NETWORK_NETTY_BOSS_THREADS = create(Name.WORKER_NETWORK_NETTY_BOSS_THREADS, 1); public static final PropertyKey WORKER_NETWORK_NETTY_BUFFER_RECEIVE = create(Name.WORKER_NETWORK_NETTY_BUFFER_RECEIVE, null); public static final PropertyKey WORKER_NETWORK_NETTY_BUFFER_SEND = create(Name.WORKER_NETWORK_NETTY_BUFFER_SEND, null); public static final PropertyKey WORKER_NETWORK_NETTY_CHANNEL = create(Name.WORKER_NETWORK_NETTY_CHANNEL, null); public static final PropertyKey WORKER_NETWORK_NETTY_FILE_TRANSFER_TYPE = create(Name.WORKER_NETWORK_NETTY_FILE_TRANSFER_TYPE, "MAPPED"); public static final PropertyKey WORKER_NETWORK_NETTY_SHUTDOWN_QUIET_PERIOD = create(Name.WORKER_NETWORK_NETTY_SHUTDOWN_QUIET_PERIOD, 2); public static final PropertyKey WORKER_NETWORK_NETTY_SHUTDOWN_TIMEOUT = create(Name.WORKER_NETWORK_NETTY_SHUTDOWN_TIMEOUT, 15); public static final PropertyKey WORKER_NETWORK_NETTY_WATERMARK_HIGH = create(Name.WORKER_NETWORK_NETTY_WATERMARK_HIGH, "32KB"); public static final PropertyKey WORKER_NETWORK_NETTY_WATERMARK_LOW = create(Name.WORKER_NETWORK_NETTY_WATERMARK_LOW, "8KB"); public static final PropertyKey WORKER_NETWORK_NETTY_WORKER_THREADS = create(Name.WORKER_NETWORK_NETTY_WORKER_THREADS, 0); public static final PropertyKey WORKER_NETWORK_NETTY_WRITER_BUFFER_SIZE_PACKETS = create(Name.WORKER_NETWORK_NETTY_WRITER_BUFFER_SIZE_PACKETS, 16); public static final PropertyKey WORKER_NETWORK_NETTY_READER_BUFFER_SIZE_PACKETS = create(Name.WORKER_NETWORK_NETTY_READER_BUFFER_SIZE_PACKETS, 16); public static final PropertyKey WORKER_NETWORK_NETTY_BLOCK_READER_THREADS_MAX = create(Name.WORKER_NETWORK_NETTY_BLOCK_READER_THREADS_MAX, 128); public static final PropertyKey WORKER_NETWORK_NETTY_BLOCK_WRITER_THREADS_MAX = create(Name.WORKER_NETWORK_NETTY_BLOCK_WRITER_THREADS_MAX, 128); public static final PropertyKey WORKER_NETWORK_NETTY_FILE_READER_THREADS_MAX = create(Name.WORKER_NETWORK_NETTY_FILE_READER_THREADS_MAX, 128); public static final PropertyKey WORKER_NETWORK_NETTY_FILE_WRITER_THREADS_MAX = create(Name.WORKER_NETWORK_NETTY_FILE_WRITER_THREADS_MAX, 128); public static final PropertyKey WORKER_NETWORK_NETTY_RPC_THREADS_MAX = create(Name.WORKER_NETWORK_NETTY_RPC_THREADS_MAX, 128); public static final PropertyKey WORKER_PRINCIPAL = create(Name.WORKER_PRINCIPAL, null); public static final PropertyKey WORKER_RPC_PORT = create(Name.WORKER_RPC_PORT, 29998); public static final PropertyKey WORKER_SESSION_TIMEOUT_MS = create(Name.WORKER_SESSION_TIMEOUT_MS, 60000); public static final PropertyKey WORKER_TIERED_STORE_BLOCK_LOCK_READERS = create(Name.WORKER_TIERED_STORE_BLOCK_LOCK_READERS, 1000); public static final PropertyKey WORKER_TIERED_STORE_BLOCK_LOCKS = create(Name.WORKER_TIERED_STORE_BLOCK_LOCKS, 1000); public static final PropertyKey WORKER_TIERED_STORE_LEVEL0_ALIAS = create(Template.WORKER_TIERED_STORE_LEVEL_ALIAS, "MEM", 0); public static final PropertyKey WORKER_TIERED_STORE_LEVEL0_DIRS_PATH = create(Template.WORKER_TIERED_STORE_LEVEL_DIRS_PATH, "/mnt/ramdisk", 0); public static final PropertyKey WORKER_TIERED_STORE_LEVEL0_DIRS_QUOTA = create(Template.WORKER_TIERED_STORE_LEVEL_DIRS_QUOTA, "${alluxio.worker.memory.size}", 0); /** * @deprecated It will be removed in 2.0.0. * Use {@link #WORKER_TIERED_STORE_LEVEL0_HIGH_WATERMARK_RATIO} and * {@link #WORKER_TIERED_STORE_LEVEL0_LOW_WATERMARK_RATIO} instead. */ @Deprecated public static final PropertyKey WORKER_TIERED_STORE_LEVEL0_RESERVED_RATIO = create(Template.WORKER_TIERED_STORE_LEVEL_RESERVED_RATIO, null, 0); public static final PropertyKey WORKER_TIERED_STORE_LEVEL0_HIGH_WATERMARK_RATIO = create(Template.WORKER_TIERED_STORE_LEVEL_HIGH_WATERMARK_RATIO, 1.0, 0); public static final PropertyKey WORKER_TIERED_STORE_LEVEL0_LOW_WATERMARK_RATIO = create(Template.WORKER_TIERED_STORE_LEVEL_LOW_WATERMARK_RATIO, 0.7, 0); public static final PropertyKey WORKER_TIERED_STORE_LEVEL1_ALIAS = create(Template.WORKER_TIERED_STORE_LEVEL_ALIAS, null, 1); public static final PropertyKey WORKER_TIERED_STORE_LEVEL1_DIRS_PATH = create(Template.WORKER_TIERED_STORE_LEVEL_DIRS_PATH, null, 1); public static final PropertyKey WORKER_TIERED_STORE_LEVEL1_DIRS_QUOTA = create(Template.WORKER_TIERED_STORE_LEVEL_DIRS_QUOTA, null, 1); /** * @deprecated It will be removed in 2.0.0. * Use {@link #WORKER_TIERED_STORE_LEVEL1_HIGH_WATERMARK_RATIO} and * {@link #WORKER_TIERED_STORE_LEVEL1_LOW_WATERMARK_RATIO} instead. */ @Deprecated public static final PropertyKey WORKER_TIERED_STORE_LEVEL1_RESERVED_RATIO = create(Template.WORKER_TIERED_STORE_LEVEL_RESERVED_RATIO, null, 1); public static final PropertyKey WORKER_TIERED_STORE_LEVEL1_HIGH_WATERMARK_RATIO = create(Template.WORKER_TIERED_STORE_LEVEL_HIGH_WATERMARK_RATIO, 1.0, 1); public static final PropertyKey WORKER_TIERED_STORE_LEVEL1_LOW_WATERMARK_RATIO = create(Template.WORKER_TIERED_STORE_LEVEL_LOW_WATERMARK_RATIO, 0.7, 1); public static final PropertyKey WORKER_TIERED_STORE_LEVEL2_ALIAS = create(Template.WORKER_TIERED_STORE_LEVEL_ALIAS, null, 2); public static final PropertyKey WORKER_TIERED_STORE_LEVEL2_DIRS_PATH = create(Template.WORKER_TIERED_STORE_LEVEL_DIRS_PATH, null, 2); public static final PropertyKey WORKER_TIERED_STORE_LEVEL2_DIRS_QUOTA = create(Template.WORKER_TIERED_STORE_LEVEL_DIRS_QUOTA, null, 2); /** * @deprecated It will be removed in 2.0.0. * Use {@link #WORKER_TIERED_STORE_LEVEL2_HIGH_WATERMARK_RATIO} and * {@link #WORKER_TIERED_STORE_LEVEL2_LOW_WATERMARK_RATIO} instead. */ @Deprecated public static final PropertyKey WORKER_TIERED_STORE_LEVEL2_RESERVED_RATIO = create(Template.WORKER_TIERED_STORE_LEVEL_RESERVED_RATIO, null, 2); public static final PropertyKey WORKER_TIERED_STORE_LEVEL2_HIGH_WATERMARK_RATIO = create(Template.WORKER_TIERED_STORE_LEVEL_HIGH_WATERMARK_RATIO, 1.0, 2); public static final PropertyKey WORKER_TIERED_STORE_LEVEL2_LOW_WATERMARK_RATIO = create(Template.WORKER_TIERED_STORE_LEVEL_LOW_WATERMARK_RATIO, 0.7, 2); public static final PropertyKey WORKER_TIERED_STORE_LEVELS = create(Name.WORKER_TIERED_STORE_LEVELS, 1); public static final PropertyKey WORKER_TIERED_STORE_RESERVER_ENABLED = create(Name.WORKER_TIERED_STORE_RESERVER_ENABLED, false); public static final PropertyKey WORKER_TIERED_STORE_RESERVER_INTERVAL_MS = create(Name.WORKER_TIERED_STORE_RESERVER_INTERVAL_MS, 1000); public static final PropertyKey WORKER_TIERED_STORE_RETRY = create(Name.WORKER_TIERED_STORE_RETRY, 3); public static final PropertyKey WORKER_TIERED_STORE_FREE_SPACE_RATIO = create(Name.WORKER_TIERED_STORE_FREE_SPACE_RATIO, 0.0f); public static final PropertyKey WORKER_WEB_BIND_HOST = create(Name.WORKER_WEB_BIND_HOST, "0.0.0.0"); public static final PropertyKey WORKER_WEB_HOSTNAME = create(Name.WORKER_WEB_HOSTNAME, null); public static final PropertyKey WORKER_WEB_PORT = create(Name.WORKER_WEB_PORT, 30000); public static final PropertyKey WORKER_UFS_BLOCK_OPEN_TIMEOUT_MS = create(Name.WORKER_UFS_BLOCK_OPEN_TIMEOUT_MS, 300000); // // Proxy related properties // public static final PropertyKey PROXY_STREAM_CACHE_TIMEOUT_MS = create(Name.PROXY_STREAM_CACHE_TIMEOUT_MS, 3600000); public static final PropertyKey PROXY_WEB_BIND_HOST = create(Name.PROXY_WEB_BIND_HOST, "0.0.0.0"); public static final PropertyKey PROXY_WEB_HOSTNAME = create(Name.PROXY_WEB_HOSTNAME, null); public static final PropertyKey PROXY_WEB_PORT = create(Name.PROXY_WEB_PORT, 39999); // // User related properties // public static final PropertyKey USER_BLOCK_MASTER_CLIENT_THREADS = create(Name.USER_BLOCK_MASTER_CLIENT_THREADS, 10); public static final PropertyKey USER_BLOCK_REMOTE_READ_BUFFER_SIZE_BYTES = create(Name.USER_BLOCK_REMOTE_READ_BUFFER_SIZE_BYTES, "8MB"); /** * @deprecated It will be removed in 2.0.0. */ @Deprecated public static final PropertyKey USER_BLOCK_REMOTE_READER_CLASS = create(Name.USER_BLOCK_REMOTE_READER_CLASS, "alluxio.client.netty.NettyRemoteBlockReader"); /** * @deprecated It will be removed in 2.0.0. */ @Deprecated public static final PropertyKey USER_BLOCK_REMOTE_WRITER_CLASS = create(Name.USER_BLOCK_REMOTE_WRITER_CLASS, "alluxio.client.netty.NettyRemoteBlockWriter"); public static final PropertyKey USER_BLOCK_SIZE_BYTES_DEFAULT = create(Name.USER_BLOCK_SIZE_BYTES_DEFAULT, "512MB"); public static final PropertyKey USER_BLOCK_WORKER_CLIENT_THREADS = create(Name.USER_BLOCK_WORKER_CLIENT_THREADS, 10); public static final PropertyKey USER_BLOCK_WORKER_CLIENT_POOL_SIZE_MAX = create(Name.USER_BLOCK_WORKER_CLIENT_POOL_SIZE_MAX, 128); public static final PropertyKey USER_BLOCK_WORKER_CLIENT_POOL_GC_THRESHOLD_MS = create(Name.USER_BLOCK_WORKER_CLIENT_POOL_GC_THRESHOLD_MS, 300 * Constants.SECOND_MS); public static final PropertyKey USER_DATE_FORMAT_PATTERN = create(Name.USER_DATE_FORMAT_PATTERN, "MM-dd-yyyy HH:mm:ss:SSS"); public static final PropertyKey USER_FAILED_SPACE_REQUEST_LIMITS = create(Name.USER_FAILED_SPACE_REQUEST_LIMITS, 3); public static final PropertyKey USER_FILE_BUFFER_BYTES = create(Name.USER_FILE_BUFFER_BYTES, "8MB"); public static final PropertyKey USER_FILE_CACHE_PARTIALLY_READ_BLOCK = create(Name.USER_FILE_CACHE_PARTIALLY_READ_BLOCK, true); public static final PropertyKey USER_FILE_DELETE_UNCHECKED = create(Name.USER_FILE_DELETE_UNCHECKED, false); public static final PropertyKey USER_FILE_MASTER_CLIENT_THREADS = create(Name.USER_FILE_MASTER_CLIENT_THREADS, 10); public static final PropertyKey USER_FILE_METADATA_LOAD_TYPE = create(Name.USER_FILE_METADATA_LOAD_TYPE, "Once"); public static final PropertyKey USER_FILE_PASSIVE_CACHE_ENABLED = create(Name.USER_FILE_PASSIVE_CACHE_ENABLED, true); public static final PropertyKey USER_FILE_READ_TYPE_DEFAULT = create(Name.USER_FILE_READ_TYPE_DEFAULT, "CACHE_PROMOTE"); public static final PropertyKey USER_FILE_SEEK_BUFFER_SIZE_BYTES = create(Name.USER_FILE_SEEK_BUFFER_SIZE_BYTES, "1MB"); public static final PropertyKey USER_FILE_WAITCOMPLETED_POLL_MS = create(Name.USER_FILE_WAITCOMPLETED_POLL_MS, 1000); public static final PropertyKey USER_FILE_WORKER_CLIENT_THREADS = create(Name.USER_FILE_WORKER_CLIENT_THREADS, 10); public static final PropertyKey USER_FILE_WORKER_CLIENT_POOL_SIZE_MAX = create(Name.USER_FILE_WORKER_CLIENT_POOL_SIZE_MAX, 128); public static final PropertyKey USER_FILE_WORKER_CLIENT_POOL_GC_THRESHOLD_MS = create(Name.USER_FILE_WORKER_CLIENT_POOL_GC_THRESHOLD_MS, 300 * Constants.SECOND_MS); public static final PropertyKey USER_FILE_WRITE_LOCATION_POLICY = create(Name.USER_FILE_WRITE_LOCATION_POLICY, "alluxio.client.file.policy.LocalFirstPolicy"); public static final PropertyKey USER_FILE_WRITE_AVOID_EVICTION_POLICY_RESERVED_BYTES = create(Name.USER_FILE_WRITE_AVOID_EVICTION_POLICY_RESERVED_BYTES, "0MB"); public static final PropertyKey USER_FILE_WRITE_TYPE_DEFAULT = create(Name.USER_FILE_WRITE_TYPE_DEFAULT, "MUST_CACHE"); public static final PropertyKey USER_FILE_WRITE_TIER_DEFAULT = create(Name.USER_FILE_WRITE_TIER_DEFAULT, Constants.FIRST_TIER); public static final PropertyKey USER_HEARTBEAT_INTERVAL_MS = create(Name.USER_HEARTBEAT_INTERVAL_MS, 1000); public static final PropertyKey USER_HOSTNAME = create(Name.USER_HOSTNAME, null); public static final PropertyKey USER_LINEAGE_ENABLED = create(Name.USER_LINEAGE_ENABLED, false); public static final PropertyKey USER_LINEAGE_MASTER_CLIENT_THREADS = create(Name.USER_LINEAGE_MASTER_CLIENT_THREADS, 10); public static final PropertyKey USER_LOCAL_READER_PACKET_SIZE_BYTES = create(Name.USER_LOCAL_READER_PACKET_SIZE_BYTES, "8MB"); public static final PropertyKey USER_LOCAL_WRITER_PACKET_SIZE_BYTES = create(Name.USER_LOCAL_WRITER_PACKET_SIZE_BYTES, "64KB"); public static final PropertyKey USER_NETWORK_NETTY_CHANNEL = create(Name.USER_NETWORK_NETTY_CHANNEL, null); public static final PropertyKey USER_NETWORK_NETTY_TIMEOUT_MS = create(Name.USER_NETWORK_NETTY_TIMEOUT_MS, 30000); public static final PropertyKey USER_NETWORK_NETTY_WORKER_THREADS = create(Name.USER_NETWORK_NETTY_WORKER_THREADS, 0); public static final PropertyKey USER_NETWORK_NETTY_CHANNEL_POOL_SIZE_MAX = create(Name.USER_NETWORK_NETTY_CHANNEL_POOL_SIZE_MAX, 1024); public static final PropertyKey USER_NETWORK_NETTY_CHANNEL_POOL_GC_THRESHOLD_MS = create(Name.USER_NETWORK_NETTY_CHANNEL_POOL_GC_THRESHOLD_MS, 300 * Constants.SECOND_MS); public static final PropertyKey USER_NETWORK_NETTY_CHANNEL_POOL_DISABLED = create(Name.USER_NETWORK_NETTY_CHANNEL_POOL_DISABLED, false); public static final PropertyKey USER_NETWORK_NETTY_WRITER_PACKET_SIZE_BYTES = create(Name.USER_NETWORK_NETTY_WRITER_PACKET_SIZE_BYTES, "64KB"); public static final PropertyKey USER_NETWORK_NETTY_WRITER_BUFFER_SIZE_PACKETS = create(Name.USER_NETWORK_NETTY_WRITER_BUFFER_SIZE_PACKETS, 16); public static final PropertyKey USER_NETWORK_NETTY_WRITER_CLOSE_TIMEOUT_MS = create(Name.USER_NETWORK_NETTY_WRITER_CLOSE_TIMEOUT_MS, 300000); public static final PropertyKey USER_NETWORK_NETTY_READER_BUFFER_SIZE_PACKETS = create(Name.USER_NETWORK_NETTY_READER_BUFFER_SIZE_PACKETS, 16); public static final PropertyKey USER_NETWORK_NETTY_READER_CANCEL_ENABLED = create(Name.USER_NETWORK_NETTY_READER_CANCEL_ENABLED, true); public static final PropertyKey USER_NETWORK_NETTY_READER_PACKET_SIZE_BYTES = create(Name.USER_NETWORK_NETTY_READER_PACKET_SIZE_BYTES, "64KB"); public static final PropertyKey USER_RPC_RETRY_BASE_SLEEP_MS = create(Name.USER_RPC_RETRY_BASE_SLEEP_MS, 50); public static final PropertyKey USER_RPC_RETRY_MAX_NUM_RETRY = create(Name.USER_RPC_RETRY_MAX_NUM_RETRY, 20); public static final PropertyKey USER_RPC_RETRY_MAX_SLEEP_MS = create(Name.USER_RPC_RETRY_MAX_SLEEP_MS, 5000); /** * @deprecated It will be removed in 2.0.0. */ @Deprecated public static final PropertyKey USER_UFS_DELEGATION_ENABLED = create(Name.USER_UFS_DELEGATION_ENABLED, true); /** * @deprecated It will be removed in 2.0.0. */ @Deprecated public static final PropertyKey USER_UFS_DELEGATION_READ_BUFFER_SIZE_BYTES = create(Name.USER_UFS_DELEGATION_READ_BUFFER_SIZE_BYTES, "8MB"); public static final PropertyKey USER_UFS_DELEGATION_WRITE_BUFFER_SIZE_BYTES = create(Name.USER_UFS_DELEGATION_WRITE_BUFFER_SIZE_BYTES, "2MB"); /** * @deprecated It will be removed in 2.0.0. */ @Deprecated public static final PropertyKey USER_UFS_FILE_READER_CLASS = create(Name.USER_UFS_FILE_READER_CLASS, "alluxio.client.netty.NettyUnderFileSystemFileReader"); /** * @deprecated It will be removed in 2.0.0. */ @Deprecated public static final PropertyKey USER_UFS_FILE_WRITER_CLASS = create(Name.USER_UFS_FILE_WRITER_CLASS, "alluxio.client.netty.NettyUnderFileSystemFileWriter"); public static final PropertyKey USER_UFS_BLOCK_READ_LOCATION_POLICY = create(Name.USER_UFS_BLOCK_READ_LOCATION_POLICY, "alluxio.client.file.policy.LocalFirstPolicy"); public static final PropertyKey USER_UFS_BLOCK_READ_LOCATION_POLICY_DETERMINISTIC_HASH_SHARDS = create(Name.USER_UFS_BLOCK_READ_LOCATION_POLICY_DETERMINISTIC_HASH_SHARDS, 1); public static final PropertyKey USER_UFS_BLOCK_READ_CONCURRENCY_MAX = create(Name.USER_UFS_BLOCK_READ_CONCURRENCY_MAX, Integer.MAX_VALUE); public static final PropertyKey USER_UFS_BLOCK_OPEN_TIMEOUT_MS = create(Name.USER_UFS_BLOCK_OPEN_TIMEOUT_MS, 300000); public static final PropertyKey USER_SHORT_CIRCUIT_ENABLED = create(Name.USER_SHORT_CIRCUIT_ENABLED, true); // // FUSE integration related properties // /** Maximum number of Alluxio paths to cache for fuse conversion. */ public static final PropertyKey FUSE_CACHED_PATHS_MAX = create(Name.FUSE_CACHED_PATHS_MAX, 500); /** Have the fuse process log every FS request. */ public static final PropertyKey FUSE_DEBUG_ENABLED = create(Name.FUSE_DEBUG_ENABLED, false); /** FUSE file system name. */ public static final PropertyKey FUSE_FS_NAME = create(Name.FUSE_FS_NAME, "alluxio-fuse"); public static final PropertyKey FUSE_FS_ROOT = create(Name.FUSE_FS_ROOT, "/"); /** * Passed to fuse-mount, maximum granularity of write operations: * Capped by the kernel to 128KB max (as of Linux 3.16.0),. */ public static final PropertyKey FUSE_MAXWRITE_BYTES = create(Name.FUSE_MAXWRITE_BYTES, 131072); public static final PropertyKey FUSE_MOUNT_DEFAULT = create(Name.FUSE_MOUNT_DEFAULT, "/mnt/alluxio"); // // Security related properties // public static final PropertyKey SECURITY_AUTHENTICATION_CUSTOM_PROVIDER_CLASS = create(Name.SECURITY_AUTHENTICATION_CUSTOM_PROVIDER_CLASS, null); public static final PropertyKey SECURITY_AUTHENTICATION_SOCKET_TIMEOUT_MS = create(Name.SECURITY_AUTHENTICATION_SOCKET_TIMEOUT_MS, "600000"); public static final PropertyKey SECURITY_AUTHENTICATION_TYPE = create(Name.SECURITY_AUTHENTICATION_TYPE, "SIMPLE"); public static final PropertyKey SECURITY_AUTHORIZATION_PERMISSION_ENABLED = create(Name.SECURITY_AUTHORIZATION_PERMISSION_ENABLED, true); public static final PropertyKey SECURITY_AUTHORIZATION_PERMISSION_SUPERGROUP = create(Name.SECURITY_AUTHORIZATION_PERMISSION_SUPERGROUP, "supergroup"); public static final PropertyKey SECURITY_AUTHORIZATION_PERMISSION_UMASK = create(Name.SECURITY_AUTHORIZATION_PERMISSION_UMASK, "022"); public static final PropertyKey SECURITY_GROUP_MAPPING_CACHE_TIMEOUT_MS = create(Name.SECURITY_GROUP_MAPPING_CACHE_TIMEOUT_MS, "60000"); public static final PropertyKey SECURITY_GROUP_MAPPING_CLASS = create(Name.SECURITY_GROUP_MAPPING_CLASS, "alluxio.security.group.provider.ShellBasedUnixGroupsMapping"); public static final PropertyKey SECURITY_LOGIN_USERNAME = create(Name.SECURITY_LOGIN_USERNAME, null); // // Mesos and Yarn related properties // public static final PropertyKey INTEGRATION_MASTER_RESOURCE_CPU = create(Name.INTEGRATION_MASTER_RESOURCE_CPU, 1); public static final PropertyKey INTEGRATION_MASTER_RESOURCE_MEM = create(Name.INTEGRATION_MASTER_RESOURCE_MEM, "1024MB"); public static final PropertyKey INTEGRATION_MESOS_ALLUXIO_JAR_URL = create(Name.INTEGRATION_MESOS_ALLUXIO_JAR_URL, String.format( "http://downloads.alluxio.org/downloads/files/${%s}/" + "alluxio-${%s}-bin.tar.gz", Name.VERSION, Name.VERSION)); public static final PropertyKey INTEGRATION_MESOS_ALLUXIO_MASTER_NAME = create(Name.INTEGRATION_MESOS_ALLUXIO_MASTER_NAME, "AlluxioMaster"); public static final PropertyKey INTEGRATION_MESOS_ALLUXIO_MASTER_NODE_COUNT = create(Name.INTEGRATION_MESOS_ALLUXIO_MASTER_NODE_COUNT, 1); public static final PropertyKey INTEGRATION_MESOS_ALLUXIO_WORKER_NAME = create(Name.INTEGRATION_MESOS_ALLUXIO_WORKER_NAME, "AlluxioWorker"); public static final PropertyKey INTEGRATION_MESOS_JDK_PATH = create(Name.INTEGRATION_MESOS_JDK_PATH, "jdk1.7.0_79"); public static final PropertyKey INTEGRATION_MESOS_JDK_URL = create(Name.INTEGRATION_MESOS_JDK_URL, "https://alluxio-mesos.s3.amazonaws.com/jdk-7u79-linux-x64.tar.gz"); public static final PropertyKey INTEGRATION_MESOS_PRINCIPAL = create(Name.INTEGRATION_MESOS_PRINCIPAL, "alluxio"); public static final PropertyKey INTEGRATION_MESOS_ROLE = create(Name.INTEGRATION_MESOS_ROLE, "*"); public static final PropertyKey INTEGRATION_MESOS_SECRET = create(Name.INTEGRATION_MESOS_SECRET, null); public static final PropertyKey INTEGRATION_MESOS_USER = create(Name.INTEGRATION_MESOS_USER, ""); public static final PropertyKey INTEGRATION_WORKER_RESOURCE_CPU = create(Name.INTEGRATION_WORKER_RESOURCE_CPU, 1); public static final PropertyKey INTEGRATION_WORKER_RESOURCE_MEM = create(Name.INTEGRATION_WORKER_RESOURCE_MEM, "1024MB"); public static final PropertyKey INTEGRATION_YARN_WORKERS_PER_HOST_MAX = create(Name.INTEGRATION_YARN_WORKERS_PER_HOST_MAX, 1); /** * A nested class to hold named string constants for their corresponding properties. * Used for setting configuration in integration tests. */ @ThreadSafe public static final class Name { public static final String CONF_DIR = "alluxio.conf.dir"; public static final String DEBUG = "alluxio.debug"; public static final String HOME = "alluxio.home"; public static final String INTEGRATION_MASTER_RESOURCE_CPU = "alluxio.integration.master.resource.cpu"; public static final String INTEGRATION_MASTER_RESOURCE_MEM = "alluxio.integration.master.resource.mem"; public static final String INTEGRATION_MESOS_ALLUXIO_MASTER_NAME = "alluxio.integration.mesos.master.name"; public static final String INTEGRATION_MESOS_ALLUXIO_MASTER_NODE_COUNT = "alluxio.integration.mesos.master.node.count"; public static final String INTEGRATION_MESOS_ALLUXIO_WORKER_NAME = "alluxio.integration.mesos.worker.name"; public static final String INTEGRATION_MESOS_ALLUXIO_JAR_URL = "alluxio.integration.mesos.alluxio.jar.url"; public static final String INTEGRATION_MESOS_JDK_PATH = "alluxio.integration.mesos.jdk.path"; public static final String INTEGRATION_MESOS_JDK_URL = "alluxio.integration.mesos.jdk.url"; public static final String INTEGRATION_MESOS_PRINCIPAL = "alluxio.integration.mesos.principal"; public static final String INTEGRATION_MESOS_ROLE = "alluxio.integration.mesos.role"; public static final String INTEGRATION_MESOS_SECRET = "alluxio.integration.mesos.secret"; public static final String INTEGRATION_MESOS_USER = "alluxio.integration.mesos.user"; public static final String INTEGRATION_WORKER_RESOURCE_CPU = "alluxio.integration.worker.resource.cpu"; public static final String INTEGRATION_WORKER_RESOURCE_MEM = "alluxio.integration.worker.resource.mem"; public static final String INTEGRATION_YARN_WORKERS_PER_HOST_MAX = "alluxio.integration.yarn.workers.per.host.max"; public static final String KEY_VALUE_ENABLED = "alluxio.keyvalue.enabled"; public static final String KEY_VALUE_PARTITION_SIZE_BYTES_MAX = "alluxio.keyvalue.partition.size.bytes.max"; public static final String LOGGER_TYPE = "alluxio.logger.type"; public static final String LOGS_DIR = "alluxio.logs.dir"; public static final String METRICS_CONF_FILE = "alluxio.metrics.conf.file"; public static final String NETWORK_HOST_RESOLUTION_TIMEOUT_MS = "alluxio.network.host.resolution.timeout.ms"; public static final String NETWORK_NETTY_HEARTBEAT_TIMEOUT_MS = "alluxio.network.netty.heartbeat.timeout.ms"; public static final String NETWORK_THRIFT_FRAME_SIZE_BYTES_MAX = "alluxio.network.thrift.frame.size.bytes.max"; public static final String SITE_CONF_DIR = "alluxio.site.conf.dir"; public static final String TEST_MODE = "alluxio.test.mode"; public static final String VERSION = "alluxio.version"; public static final String WEB_RESOURCES = "alluxio.web.resources"; public static final String WEB_THREADS = "alluxio.web.threads"; public static final String WORK_DIR = "alluxio.work.dir"; public static final String ZOOKEEPER_ADDRESS = "alluxio.zookeeper.address"; public static final String ZOOKEEPER_ELECTION_PATH = "alluxio.zookeeper.election.path"; public static final String ZOOKEEPER_ENABLED = "alluxio.zookeeper.enabled"; public static final String ZOOKEEPER_LEADER_INQUIRY_RETRY_COUNT = "alluxio.zookeeper.leader.inquiry.retry"; public static final String ZOOKEEPER_LEADER_PATH = "alluxio.zookeeper.leader.path"; // // UFS related properties // public static final String UNDERFS_ADDRESS = "alluxio.underfs.address"; public static final String UNDERFS_ALLOW_SET_OWNER_FAILURE = "alluxio.underfs.allow.set.owner.failure"; public static final String UNDERFS_LISTING_LENGTH = "alluxio.underfs.listing.length"; public static final String UNDERFS_GCS_OWNER_ID_TO_USERNAME_MAPPING = "alluxio.underfs.gcs.owner.id.to.username.mapping"; public static final String UNDERFS_GLUSTERFS_IMPL = "alluxio.underfs.glusterfs.impl"; public static final String UNDERFS_GLUSTERFS_MOUNTS = "alluxio.underfs.glusterfs.mounts"; public static final String UNDERFS_GLUSTERFS_MR_DIR = "alluxio.underfs.glusterfs.mapred.system.dir"; public static final String UNDERFS_GLUSTERFS_VOLUMES = "alluxio.underfs.glusterfs.volumes"; public static final String UNDERFS_HDFS_CONFIGURATION = "alluxio.underfs.hdfs.configuration"; public static final String UNDERFS_HDFS_IMPL = "alluxio.underfs.hdfs.impl"; public static final String UNDERFS_HDFS_PREFIXES = "alluxio.underfs.hdfs.prefixes"; public static final String UNDERFS_HDFS_REMOTE = "alluxio.underfs.hdfs.remote"; public static final String UNDERFS_OBJECT_STORE_SERVICE_THREADS = "alluxio.underfs.object.store.service.threads"; public static final String UNDERFS_OBJECT_STORE_MOUNT_SHARED_PUBLICLY = "alluxio.underfs.object.store.mount.shared.publicly"; public static final String UNDERFS_OSS_CONNECT_MAX = "alluxio.underfs.oss.connection.max"; public static final String UNDERFS_OSS_CONNECT_TIMEOUT = "alluxio.underfs.oss.connection.timeout.ms"; public static final String UNDERFS_OSS_CONNECT_TTL = "alluxio.underfs.oss.connection.ttl"; public static final String UNDERFS_OSS_SOCKET_TIMEOUT = "alluxio.underfs.oss.socket.timeout.ms"; public static final String UNDERFS_S3A_INHERIT_ACL = "alluxio.underfs.s3a.inherit_acl"; public static final String UNDERFS_S3A_CONSISTENCY_TIMEOUT_MS = "alluxio.underfs.s3a.consistency.timeout.ms"; public static final String UNDERFS_S3A_DIRECTORY_SUFFIX = "alluxio.underfs.s3a.directory.suffix"; public static final String UNDERFS_S3A_REQUEST_TIMEOUT_MS = "alluxio.underfs.s3a.request.timeout.ms"; public static final String UNDERFS_S3A_SECURE_HTTP_ENABLED = "alluxio.underfs.s3a.secure.http.enabled"; public static final String UNDERFS_S3A_SERVER_SIDE_ENCRYPTION_ENABLED = "alluxio.underfs.s3a.server.side.encryption.enabled"; public static final String UNDERFS_S3A_SIGNER_ALGORITHM = "alluxio.underfs.s3a.signer.algorithm"; public static final String UNDERFS_S3A_SOCKET_TIMEOUT_MS = "alluxio.underfs.s3a.socket.timeout.ms"; public static final String UNDERFS_S3_ADMIN_THREADS_MAX = "alluxio.underfs.s3.admin.threads.max"; public static final String UNDERFS_S3_DISABLE_DNS_BUCKETS = "alluxio.underfs.s3.disable.dns.buckets"; public static final String UNDERFS_S3_ENDPOINT = "alluxio.underfs.s3.endpoint"; public static final String UNDERFS_S3_ENDPOINT_HTTPS_PORT = "alluxio.underfs.s3.endpoint.https.port"; public static final String UNDERFS_S3_ENDPOINT_HTTP_PORT = "alluxio.underfs.s3.endpoint.http.port"; public static final String UNDERFS_S3_OWNER_ID_TO_USERNAME_MAPPING = "alluxio.underfs.s3.owner.id.to.username.mapping"; public static final String UNDERFS_S3_PROXY_HOST = "alluxio.underfs.s3.proxy.host"; public static final String UNDERFS_S3_PROXY_HTTPS_ONLY = "alluxio.underfs.s3.proxy.https.only"; public static final String UNDERFS_S3_PROXY_PORT = "alluxio.underfs.s3.proxy.port"; public static final String UNDERFS_S3_THREADS_MAX = "alluxio.underfs.s3.threads.max"; public static final String UNDERFS_S3_UPLOAD_THREADS_MAX = "alluxio.underfs.s3.upload.threads.max"; // // UFS access control related properties // public static final String GCS_ACCESS_KEY = "fs.gcs.accessKeyId"; public static final String GCS_SECRET_KEY = "fs.gcs.secretAccessKey"; public static final String OSS_ACCESS_KEY = "fs.oss.accessKeyId"; public static final String OSS_ENDPOINT_KEY = "fs.oss.endpoint"; public static final String OSS_SECRET_KEY = "fs.oss.accessKeySecret"; public static final String S3A_ACCESS_KEY = "aws.accessKeyId"; public static final String S3A_SECRET_KEY = "aws.secretKey"; public static final String S3N_ACCESS_KEY = "fs.s3n.awsAccessKeyId"; public static final String S3N_SECRET_KEY = "fs.s3n.awsSecretAccessKey"; public static final String SWIFT_API_KEY = "fs.swift.apikey"; public static final String SWIFT_AUTH_METHOD_KEY = "fs.swift.auth.method"; public static final String SWIFT_AUTH_URL_KEY = "fs.swift.auth.url"; public static final String SWIFT_PASSWORD_KEY = "fs.swift.password"; public static final String SWIFT_SIMULATION = "fs.swift.simulation"; public static final String SWIFT_TENANT_KEY = "fs.swift.tenant"; public static final String SWIFT_USER_KEY = "fs.swift.user"; public static final String SWIFT_USE_PUBLIC_URI_KEY = "fs.swift.use.public.url"; public static final String SWIFT_REGION_KEY = "fs.swift.region"; // // Master related properties // public static final String MASTER_ADDRESS = "alluxio.master.address"; public static final String MASTER_BIND_HOST = "alluxio.master.bind.host"; public static final String MASTER_CONNECTION_TIMEOUT_MS = "alluxio.master.connection.timeout.ms"; public static final String MASTER_FILE_ASYNC_PERSIST_HANDLER = "alluxio.master.file.async.persist.handler"; public static final String MASTER_FORMAT_FILE_PREFIX = "alluxio.master.format.file_prefix"; public static final String MASTER_HEARTBEAT_INTERVAL_MS = "alluxio.master.heartbeat.interval.ms"; public static final String MASTER_HOSTNAME = "alluxio.master.hostname"; public static final String MASTER_JOURNAL_FLUSH_BATCH_TIME_MS = "alluxio.master.journal.flush.batch.time.ms"; public static final String MASTER_JOURNAL_FLUSH_TIMEOUT_MS = "alluxio.master.journal.flush.timeout.ms"; public static final String MASTER_JOURNAL_FOLDER = "alluxio.master.journal.folder"; public static final String MASTER_JOURNAL_FORMATTER_CLASS = "alluxio.master.journal.formatter.class"; public static final String MASTER_JOURNAL_LOG_SIZE_BYTES_MAX = "alluxio.master.journal.log.size.bytes.max"; public static final String MASTER_JOURNAL_TAILER_SHUTDOWN_QUIET_WAIT_TIME_MS = "alluxio.master.journal.tailer.shutdown.quiet.wait.time.ms"; public static final String MASTER_JOURNAL_TAILER_SLEEP_TIME_MS = "alluxio.master.journal.tailer.sleep.time.ms"; public static final String MASTER_KEYTAB_KEY_FILE = "alluxio.master.keytab.file"; public static final String MASTER_LINEAGE_CHECKPOINT_CLASS = "alluxio.master.lineage.checkpoint.class"; public static final String MASTER_LINEAGE_CHECKPOINT_INTERVAL_MS = "alluxio.master.lineage.checkpoint.interval.ms"; public static final String MASTER_LINEAGE_RECOMPUTE_INTERVAL_MS = "alluxio.master.lineage.recompute.interval.ms"; public static final String MASTER_LINEAGE_RECOMPUTE_LOG_PATH = "alluxio.master.lineage.recompute.log.path"; public static final String MASTER_PRINCIPAL = "alluxio.master.principal"; public static final String MASTER_RETRY = "alluxio.master.retry"; public static final String MASTER_RPC_PORT = "alluxio.master.port"; public static final String MASTER_STARTUP_CONSISTENCY_CHECK_ENABLED = "alluxio.master.startup.consistency.check.enabled"; public static final String MASTER_TIERED_STORE_GLOBAL_LEVEL0_ALIAS = "alluxio.master.tieredstore.global.level0.alias"; public static final String MASTER_TIERED_STORE_GLOBAL_LEVEL1_ALIAS = "alluxio.master.tieredstore.global.level1.alias"; public static final String MASTER_TIERED_STORE_GLOBAL_LEVEL2_ALIAS = "alluxio.master.tieredstore.global.level2.alias"; public static final String MASTER_TIERED_STORE_GLOBAL_LEVELS = "alluxio.master.tieredstore.global.levels"; public static final String MASTER_TTL_CHECKER_INTERVAL_MS = "alluxio.master.ttl.checker.interval.ms"; public static final String MASTER_UFS_PATH_CACHE_CAPACITY = "alluxio.master.ufs.path.cache.capacity"; public static final String MASTER_WEB_BIND_HOST = "alluxio.master.web.bind.host"; public static final String MASTER_WEB_HOSTNAME = "alluxio.master.web.hostname"; public static final String MASTER_WEB_PORT = "alluxio.master.web.port"; public static final String MASTER_WHITELIST = "alluxio.master.whitelist"; public static final String MASTER_WORKER_THREADS_MAX = "alluxio.master.worker.threads.max"; public static final String MASTER_WORKER_THREADS_MIN = "alluxio.master.worker.threads.min"; public static final String MASTER_WORKER_TIMEOUT_MS = "alluxio.master.worker.timeout.ms"; public static final String MASTER_JOURNAL_CHECKPOINT_PERIOD_ENTRIES = "alluxio.master.journal.checkpoint.period.entries"; public static final String MASTER_JOURNAL_GC_PERIOD_MS = "alluxio.master.journal.gc.period.ms"; public static final String MASTER_JOURNAL_GC_THRESHOLD_MS = "alluxio.master.journal.gc.threshold.ms"; public static final String MASTER_JOURNAL_TEMPORARY_FILE_GC_THRESHOLD_MS = "alluxio.master.journal.temporary.file.gc.threshold.ms"; // // Worker related properties // public static final String WORKER_ALLOCATOR_CLASS = "alluxio.worker.allocator.class"; public static final String WORKER_BIND_HOST = "alluxio.worker.bind.host"; public static final String WORKER_BLOCK_HEARTBEAT_INTERVAL_MS = "alluxio.worker.block.heartbeat.interval.ms"; public static final String WORKER_BLOCK_HEARTBEAT_TIMEOUT_MS = "alluxio.worker.block.heartbeat.timeout.ms"; public static final String WORKER_BLOCK_THREADS_MAX = "alluxio.worker.block.threads.max"; public static final String WORKER_BLOCK_THREADS_MIN = "alluxio.worker.block.threads.min"; public static final String WORKER_DATA_BIND_HOST = "alluxio.worker.data.bind.host"; public static final String WORKER_DATA_FOLDER = "alluxio.worker.data.folder"; public static final String WORKER_DATA_HOSTNAME = "alluxio.worker.data.hostname"; public static final String WORKER_DATA_PORT = "alluxio.worker.data.port"; public static final String WORKER_DATA_SERVER_CLASS = "alluxio.worker.data.server.class"; public static final String WORKER_DATA_SERVER_DOMAIN_SOCKET_ADDRESS = "alluxio.worker.data.server.domain.socket.address"; public static final String WORKER_DATA_TMP_FOLDER = "alluxio.worker.data.folder.tmp"; public static final String WORKER_DATA_TMP_SUBDIR_MAX = "alluxio.worker.data.tmp.subdir.max"; public static final String WORKER_EVICTOR_CLASS = "alluxio.worker.evictor.class"; public static final String WORKER_EVICTOR_LRFU_ATTENUATION_FACTOR = "alluxio.worker.evictor.lrfu.attenuation.factor"; public static final String WORKER_EVICTOR_LRFU_STEP_FACTOR = "alluxio.worker.evictor.lrfu.step.factor"; public static final String WORKER_FILESYSTEM_HEARTBEAT_INTERVAL_MS = "alluxio.worker.filesystem.heartbeat.interval.ms"; public static final String WORKER_FILE_PERSIST_POOL_SIZE = "alluxio.worker.file.persist.pool.size"; public static final String WORKER_FILE_PERSIST_RATE_LIMIT = "alluxio.worker.file.persist.rate.limit"; public static final String WORKER_FILE_PERSIST_RATE_LIMIT_ENABLED = "alluxio.worker.file.persist.rate.limit.enabled"; public static final String WORKER_FILE_BUFFER_SIZE = "alluxio.worker.file.buffer.size"; public static final String WORKER_HOSTNAME = "alluxio.worker.hostname"; public static final String WORKER_KEYTAB_FILE = "alluxio.worker.keytab.file"; public static final String WORKER_MEMORY_SIZE = "alluxio.worker.memory.size"; public static final String WORKER_NETWORK_NETTY_BACKLOG = "alluxio.worker.network.netty.backlog"; public static final String WORKER_NETWORK_NETTY_BOSS_THREADS = "alluxio.worker.network.netty.boss.threads"; public static final String WORKER_NETWORK_NETTY_BUFFER_RECEIVE = "alluxio.worker.network.netty.buffer.receive"; public static final String WORKER_NETWORK_NETTY_BUFFER_SEND = "alluxio.worker.network.netty.buffer.send"; public static final String WORKER_NETWORK_NETTY_CHANNEL = "alluxio.worker.network.netty.channel"; public static final String WORKER_NETWORK_NETTY_FILE_TRANSFER_TYPE = "alluxio.worker.network.netty.file.transfer"; public static final String WORKER_NETWORK_NETTY_SHUTDOWN_QUIET_PERIOD = "alluxio.worker.network.netty.shutdown.quiet.period"; public static final String WORKER_NETWORK_NETTY_SHUTDOWN_TIMEOUT = "alluxio.worker.network.netty.shutdown.timeout"; public static final String WORKER_NETWORK_NETTY_WATERMARK_HIGH = "alluxio.worker.network.netty.watermark.high"; public static final String WORKER_NETWORK_NETTY_WATERMARK_LOW = "alluxio.worker.network.netty.watermark.low"; public static final String WORKER_NETWORK_NETTY_WORKER_THREADS = "alluxio.worker.network.netty.worker.threads"; public static final String WORKER_NETWORK_NETTY_WRITER_BUFFER_SIZE_PACKETS = "alluxio.worker.network.netty.writer.buffer.size.packets"; public static final String WORKER_NETWORK_NETTY_READER_BUFFER_SIZE_PACKETS = "alluxio.worker.network.netty.reader.buffer.size.packets"; public static final String WORKER_NETWORK_NETTY_BLOCK_READER_THREADS_MAX = "alluxio.worker.network.netty.block.reader.threads.max"; public static final String WORKER_NETWORK_NETTY_BLOCK_WRITER_THREADS_MAX = "alluxio.worker.network.netty.block.writer.threads.max"; public static final String WORKER_NETWORK_NETTY_FILE_READER_THREADS_MAX = "alluxio.worker.network.netty.file.reader.threads.max"; public static final String WORKER_NETWORK_NETTY_FILE_WRITER_THREADS_MAX = "alluxio.worker.network.netty.file.writer.threads.max"; public static final String WORKER_NETWORK_NETTY_RPC_THREADS_MAX = "alluxio.worker.network.netty.rpc.threads.max"; public static final String WORKER_PRINCIPAL = "alluxio.worker.principal"; public static final String WORKER_RPC_PORT = "alluxio.worker.port"; public static final String WORKER_SESSION_TIMEOUT_MS = "alluxio.worker.session.timeout.ms"; public static final String WORKER_TIERED_STORE_BLOCK_LOCK_READERS = "alluxio.worker.tieredstore.block.lock.readers"; public static final String WORKER_TIERED_STORE_BLOCK_LOCKS = "alluxio.worker.tieredstore.block.locks"; public static final String WORKER_TIERED_STORE_LEVELS = "alluxio.worker.tieredstore.levels"; public static final String WORKER_TIERED_STORE_RESERVER_ENABLED = "alluxio.worker.tieredstore.reserver.enabled"; public static final String WORKER_TIERED_STORE_RESERVER_INTERVAL_MS = "alluxio.worker.tieredstore.reserver.interval.ms"; public static final String WORKER_TIERED_STORE_RETRY = "alluxio.worker.tieredstore.retry"; public static final String WORKER_TIERED_STORE_FREE_SPACE_RATIO = "alluxio.worker.tieredstore.free.space.ratio"; public static final String WORKER_WEB_BIND_HOST = "alluxio.worker.web.bind.host"; public static final String WORKER_WEB_HOSTNAME = "alluxio.worker.web.hostname"; public static final String WORKER_WEB_PORT = "alluxio.worker.web.port"; public static final String WORKER_UFS_BLOCK_OPEN_TIMEOUT_MS = "alluxio.worker.ufs.block.open.timeout.ms"; // // Proxy related properties // public static final String PROXY_STREAM_CACHE_TIMEOUT_MS = "alluxio.proxy.stream.cache.timeout.ms"; public static final String PROXY_WEB_BIND_HOST = "alluxio.proxy.web.bind.host"; public static final String PROXY_WEB_HOSTNAME = "alluxio.proxy.web.hostname"; public static final String PROXY_WEB_PORT = "alluxio.proxy.web.port"; // // User related properties // public static final String USER_BLOCK_MASTER_CLIENT_THREADS = "alluxio.user.block.master.client.threads"; public static final String USER_BLOCK_REMOTE_READER_CLASS = "alluxio.user.block.remote.reader.class"; public static final String USER_BLOCK_REMOTE_READ_BUFFER_SIZE_BYTES = "alluxio.user.block.remote.read.buffer.size.bytes"; public static final String USER_BLOCK_REMOTE_WRITER_CLASS = "alluxio.user.block.remote.writer.class"; public static final String USER_BLOCK_SIZE_BYTES_DEFAULT = "alluxio.user.block.size.bytes.default"; public static final String USER_BLOCK_WORKER_CLIENT_THREADS = "alluxio.user.block.worker.client.threads"; public static final String USER_BLOCK_WORKER_CLIENT_POOL_SIZE_MAX = "alluxio.user.block.worker.client.pool.size.max"; public static final String USER_BLOCK_WORKER_CLIENT_POOL_GC_THRESHOLD_MS = "alluxio.user.block.worker.client.pool.gc.threshold.ms"; public static final String USER_DATE_FORMAT_PATTERN = "alluxio.user.date.format.pattern"; public static final String USER_FAILED_SPACE_REQUEST_LIMITS = "alluxio.user.failed.space.request.limits"; public static final String USER_FILE_BUFFER_BYTES = "alluxio.user.file.buffer.bytes"; public static final String USER_FILE_CACHE_PARTIALLY_READ_BLOCK = "alluxio.user.file.cache.partially.read.block"; public static final String USER_FILE_DELETE_UNCHECKED = "alluxio.user.file.delete.unchecked"; public static final String USER_FILE_MASTER_CLIENT_THREADS = "alluxio.user.file.master.client.threads"; public static final String USER_FILE_METADATA_LOAD_TYPE = "alluxio.user.file.metadata.load.type"; public static final String USER_FILE_PASSIVE_CACHE_ENABLED = "alluxio.user.file.passive.cache.enabled"; public static final String USER_FILE_READ_TYPE_DEFAULT = "alluxio.user.file.readtype.default"; public static final String USER_FILE_SEEK_BUFFER_SIZE_BYTES = "alluxio.user.file.seek.buffer.size.bytes"; public static final String USER_FILE_WAITCOMPLETED_POLL_MS = "alluxio.user.file.waitcompleted.poll.ms"; public static final String USER_FILE_WORKER_CLIENT_THREADS = "alluxio.user.file.worker.client.threads"; public static final String USER_FILE_WORKER_CLIENT_POOL_SIZE_MAX = "alluxio.user.file.worker.client.pool.size.max"; public static final String USER_FILE_WORKER_CLIENT_POOL_GC_THRESHOLD_MS = "alluxio.user.file.worker.client.pool.gc.threshold.ms"; public static final String USER_FILE_WRITE_LOCATION_POLICY = "alluxio.user.file.write.location.policy.class"; public static final String USER_FILE_WRITE_AVOID_EVICTION_POLICY_RESERVED_BYTES = "alluxio.user.file.write.avoid.eviction.policy.reserved.size.bytes"; public static final String USER_FILE_WRITE_TYPE_DEFAULT = "alluxio.user.file.writetype.default"; public static final String USER_FILE_WRITE_TIER_DEFAULT = "alluxio.user.file.write.tier.default"; public static final String USER_HEARTBEAT_INTERVAL_MS = "alluxio.user.heartbeat.interval.ms"; public static final String USER_HOSTNAME = "alluxio.user.hostname"; public static final String USER_LINEAGE_ENABLED = "alluxio.user.lineage.enabled"; public static final String USER_LINEAGE_MASTER_CLIENT_THREADS = "alluxio.user.lineage.master.client.threads"; public static final String USER_LOCAL_READER_PACKET_SIZE_BYTES = "alluxio.user.local.reader.packet.size.bytes"; public static final String USER_LOCAL_WRITER_PACKET_SIZE_BYTES = "alluxio.user.local.writer.packet.size.bytes"; public static final String USER_NETWORK_NETTY_CHANNEL = "alluxio.user.network.netty.channel"; public static final String USER_NETWORK_NETTY_TIMEOUT_MS = "alluxio.user.network.netty.timeout.ms"; public static final String USER_NETWORK_NETTY_WRITER_CLOSE_TIMEOUT_MS = "alluxio.user.network.netty.writer.close.timeout.ms"; public static final String USER_NETWORK_NETTY_WORKER_THREADS = "alluxio.user.network.netty.worker.threads"; public static final String USER_NETWORK_NETTY_CHANNEL_POOL_SIZE_MAX = "alluxio.user.network.netty.channel.pool.size.max"; public static final String USER_NETWORK_NETTY_CHANNEL_POOL_GC_THRESHOLD_MS = "alluxio.user.network.netty.channel.pool.gc.threshold.ms"; public static final String USER_NETWORK_NETTY_CHANNEL_POOL_DISABLED = "alluxio.user.network.netty.channel.pool.disabled"; public static final String USER_NETWORK_NETTY_WRITER_PACKET_SIZE_BYTES = "alluxio.user.network.netty.writer.packet.size.bytes"; public static final String USER_NETWORK_NETTY_WRITER_BUFFER_SIZE_PACKETS = "alluxio.user.network.netty.writer.buffer.size.packets"; public static final String USER_NETWORK_NETTY_READER_BUFFER_SIZE_PACKETS = "alluxio.user.network.netty.reader.buffer.size.packets"; public static final String USER_NETWORK_NETTY_READER_CANCEL_ENABLED = "alluxio.user.network.netty.reader.cancel.enabled"; public static final String USER_NETWORK_NETTY_READER_PACKET_SIZE_BYTES = "alluxio.user.network.netty.reader.packet.size.bytes"; public static final String USER_RPC_RETRY_BASE_SLEEP_MS = "alluxio.user.rpc.retry.base.sleep.ms"; public static final String USER_RPC_RETRY_MAX_NUM_RETRY = "alluxio.user.rpc.retry.max.num.retry"; public static final String USER_RPC_RETRY_MAX_SLEEP_MS = "alluxio.user.rpc.retry.max.sleep.ms"; public static final String USER_UFS_DELEGATION_ENABLED = "alluxio.user.ufs.delegation.enabled"; public static final String USER_UFS_DELEGATION_READ_BUFFER_SIZE_BYTES = "alluxio.user.ufs.delegation.read.buffer.size.bytes"; public static final String USER_UFS_DELEGATION_WRITE_BUFFER_SIZE_BYTES = "alluxio.user.ufs.delegation.write.buffer.size.bytes"; public static final String USER_UFS_FILE_READER_CLASS = "alluxio.user.ufs.file.reader.class"; public static final String USER_UFS_FILE_WRITER_CLASS = "alluxio.user.ufs.file.writer.class"; public static final String USER_UFS_BLOCK_READ_LOCATION_POLICY = "alluxio.user.ufs.block.read.location.policy"; public static final String USER_UFS_BLOCK_READ_LOCATION_POLICY_DETERMINISTIC_HASH_SHARDS = "alluxio.user.ufs.block.read.location.policy.deterministic.hash.shards"; public static final String USER_UFS_BLOCK_READ_CONCURRENCY_MAX = "alluxio.user.ufs.block.read.concurrency.max"; public static final String USER_UFS_BLOCK_OPEN_TIMEOUT_MS = "alluxio.user.ufs.block.open.timeout.ms"; public static final String USER_SHORT_CIRCUIT_ENABLED = "alluxio.user.short.circuit.enabled"; // // FUSE integration related properties // public static final String FUSE_CACHED_PATHS_MAX = "alluxio.fuse.cached.paths.max"; public static final String FUSE_DEBUG_ENABLED = "alluxio.fuse.debug.enabled"; public static final String FUSE_FS_NAME = "alluxio.fuse.fs.name"; public static final String FUSE_FS_ROOT = "alluxio.fuse.fs.root"; public static final String FUSE_MAXWRITE_BYTES = "alluxio.fuse.maxwrite.bytes"; public static final String FUSE_MOUNT_DEFAULT = "alluxio.fuse.mount.default"; // // Security related properties // public static final String SECURITY_AUTHENTICATION_CUSTOM_PROVIDER_CLASS = "alluxio.security.authentication.custom.provider.class"; public static final String SECURITY_AUTHENTICATION_SOCKET_TIMEOUT_MS = "alluxio.security.authentication.socket.timeout.ms"; public static final String SECURITY_AUTHENTICATION_TYPE = "alluxio.security.authentication.type"; public static final String SECURITY_AUTHORIZATION_PERMISSION_ENABLED = "alluxio.security.authorization.permission.enabled"; public static final String SECURITY_AUTHORIZATION_PERMISSION_SUPERGROUP = "alluxio.security.authorization.permission.supergroup"; public static final String SECURITY_AUTHORIZATION_PERMISSION_UMASK = "alluxio.security.authorization.permission.umask"; public static final String SECURITY_GROUP_MAPPING_CACHE_TIMEOUT_MS = "alluxio.security.group.mapping.cache.timeout.ms"; public static final String SECURITY_GROUP_MAPPING_CLASS = "alluxio.security.group.mapping.class"; public static final String SECURITY_LOGIN_USERNAME = "alluxio.security.login.username"; private Name() {} // prevent instantiation } /** * A set of templates to generate the names of parameterized properties given * different parameters. E.g., * {@code Template.MASTER_TIERED_STORE_GLOBAL_LEVEL_ALIAS.format(0)} */ @ThreadSafe public enum Template { MASTER_MOUNT_TABLE_ALLUXIO("alluxio.master.mount.table.%s.alluxio", "alluxio\\.master\\.mount\\.table.(\\w+)\\.alluxio"), MASTER_MOUNT_TABLE_OPTION("alluxio.master.mount.table.%s.option", "alluxio\\.master\\.mount\\.table\\.(\\w+)\\.option"), MASTER_MOUNT_TABLE_OPTION_PROPERTY("alluxio.master.mount.table.%s.option.%s", "alluxio\\.master\\.mount\\.table\\.(\\w+)\\.option(\\.\\w+)++"), MASTER_MOUNT_TABLE_READONLY("alluxio.master.mount.table.%s.readonly", "alluxio\\.master\\.mount\\.table\\.(\\w+)\\.readonly"), MASTER_MOUNT_TABLE_SHARED("alluxio.master.mount.table.%s.shared", "alluxio\\.master\\.mount\\.table\\.(\\w+)\\.shared"), MASTER_MOUNT_TABLE_UFS("alluxio.master.mount.table.%s.ufs", "alluxio\\.master\\.mount\\.table\\.(\\w+)\\.ufs"), MASTER_MOUNT_TABLE_ROOT_OPTION_PROPERTY("alluxio.master.mount.table.root.option.%s", "alluxio\\.master\\.mount\\.table\\.root\\.option(\\.\\w+)++"), MASTER_TIERED_STORE_GLOBAL_LEVEL_ALIAS("alluxio.master.tieredstore.global.level%d.alias", "alluxio\\.master\\.tieredstore\\.global\\.level(\\d+)\\.alias"), WORKER_TIERED_STORE_LEVEL_ALIAS("alluxio.worker.tieredstore.level%d.alias", "alluxio\\.worker\\.tieredstore\\.level(\\d+)\\.alias"), WORKER_TIERED_STORE_LEVEL_DIRS_PATH("alluxio.worker.tieredstore.level%d.dirs.path", "alluxio\\.worker\\.tieredstore\\.level(\\d+)\\.dirs\\.path"), WORKER_TIERED_STORE_LEVEL_DIRS_QUOTA("alluxio.worker.tieredstore.level%d.dirs.quota", "alluxio\\.worker\\.tieredstore\\.level(\\d+)\\.dirs\\.quota"), WORKER_TIERED_STORE_LEVEL_RESERVED_RATIO("alluxio.worker.tieredstore.level%d.reserved.ratio", "alluxio\\.worker\\.tieredstore\\.level(\\d+)\\.reserved\\.ratio"), WORKER_TIERED_STORE_LEVEL_HIGH_WATERMARK_RATIO( "alluxio.worker.tieredstore.level%d.watermark.high.ratio", "alluxio\\.worker\\.tieredstore\\.level(\\d+)\\.watermark\\.high\\.ratio"), WORKER_TIERED_STORE_LEVEL_LOW_WATERMARK_RATIO( "alluxio.worker.tieredstore.level%d.watermark.low.ratio", "alluxio\\.worker\\.tieredstore\\.level(\\d+)\\.watermark\\.low\\.ratio"), ; private final String mFormat; private final Pattern mPattern; /** * Constructs a property key format. * * @param format String of this property as formatted string * @param re String of this property as regexp */ Template(String format, String re) { mFormat = format; mPattern = Pattern.compile(re); } @Override public String toString() { return Objects.toStringHelper(this).add("format", mFormat).add("pattern", mPattern) .toString(); } /** * Converts a property key template (e.g., * {@link #WORKER_TIERED_STORE_LEVEL_RESERVED_RATIO}) to a {@link PropertyKey} instance. * * @param params ordinal * @return corresponding property */ public PropertyKey format(Object... params) { return new PropertyKey(String.format(mFormat, params)); } } /** * @param input string of property key * @return whether the input is a valid property name */ public static boolean isValid(String input) { // Check if input matches any default keys if (DEFAULT_KEYS_MAP.containsKey(input)) { return true; } // Check if input matches any parameterized keys for (Template template : Template.values()) { Matcher matcher = template.mPattern.matcher(input); if (matcher.matches()) { return true; } } return false; } /** * Parses a string and return its corresponding {@link PropertyKey}, throwing exception if no such * a property can be found. * * @param input string of property key * @return corresponding property */ public static PropertyKey fromString(String input) { // First try to parse it as default key PropertyKey key = DEFAULT_KEYS_MAP.get(input); if (key != null) { return key; } // Try different templates and see if any template matches for (Template template : Template.values()) { Matcher matcher = template.mPattern.matcher(input); if (matcher.matches()) { return new PropertyKey(input); } } throw new IllegalArgumentException( ExceptionMessage.INVALID_CONFIGURATION_KEY.getMessage(input)); } /** * @return all pre-defined property keys */ public static Collection<? extends PropertyKey> defaultKeys() { return DEFAULT_KEYS_MAP.values(); } /** Property name. */ private final String mName; /** * @param name String of this property */ PropertyKey(String name) { mName = Preconditions.checkNotNull(name, "name"); } /** * Factory method to create a constant default property and assign a default value. * * @param name String of this property * @param defaultValue Default value of this property in compile time if not null */ static PropertyKey create(String name, Object defaultValue) { PropertyKey key = new PropertyKey(name); DEFAULT_KEYS_MAP.put(name, key); DEFAULT_VALUES.put(key, defaultValue); return key; } /** * Factory method to create a property from template and assign a default value. * * @param template String of this property * @param defaultValue Default value of this property in compile time if not null */ static PropertyKey create(Template template, Object defaultValue, Object... param) { PropertyKey key = template.format(param); DEFAULT_KEYS_MAP.put(key.toString(), key); DEFAULT_VALUES.put(key, defaultValue); return key; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof PropertyKey)) { return false; } PropertyKey that = (PropertyKey) o; return Objects.equal(mName, that.mName); } @Override public int hashCode() { return Objects.hashCode(mName); } @Override public String toString() { return mName; } /** * @return length of this property key */ public int length() { return mName.length(); } /** * @param key the name of input key * @return if this key is nested inside the given key */ public boolean isNested(String key) { return key.length() > length() + 1 && key.startsWith(mName) && key.charAt(length()) == '.'; } /** * @return the default value of a property key or null if no default value set */ public String getDefaultValue() { Object value = DEFAULT_VALUES.get(this); return value != null ? value.toString() : null; } /** * @param name the name of a property key * @return if this property key is deprecated */ public static boolean isDeprecated(String name) { try { PropertyKey key = new PropertyKey(name); Class c = key.getClass(); Field field = c.getDeclaredField(name); Annotation[] annotations = field.getDeclaredAnnotations(); for (Annotation anno : annotations) { if (anno instanceof Deprecated) { return true; } } return false; } catch (NoSuchFieldException e) { return false; } } }