All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sap.hana.datalake.files.HdlfsConstants Maven / Gradle / Ivy

Go to download

An implementation of org.apache.hadoop.fs.FileSystem targeting SAP HANA Data Lake Files.

There is a newer version: 3.0.27
Show newest version
// © 2021-2024 SAP SE or an SAP affiliate company. All rights reserved.
package com.sap.hana.datalake.files;

import org.apache.hadoop.security.ssl.FileBasedKeyStoresFactory;
import org.apache.hadoop.security.ssl.KeyStoresFactory;

import java.io.InterruptedIOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;

public class HdlfsConstants {

  private HdlfsConstants() {}

  public static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;

  public static final String FS_HDLFS_CONTAINER_HEADER = "X-SAP-FileContainer";
  public static final String FS_HDLFS_AUTHORITY_REGEX = "([A-Za-z0-9-]*)\\.(.*)";

  // http client retry policy
  public static final boolean FS_HDLFS_HTTP_CLIENT_RETRY_POLICY_ENABLED_DEFAULT = true;
  public static final int FS_HDLFS_HTTP_CLIENT_FAILOVER_MAX_ATTEMPTS_DEFAULT = 15;
  public static final int FS_HDLFS_HTTP_CLIENT_FAILOVER_SLEEP_BASE_MS_DEFAULT = 500;
  public static final int FS_HDLFS_HTTP_CLIENT_FAILOVER_SLEEP_MAX_MS_DEFAULT = 15_000;
  public static final int FS_HDLFS_HTTP_CLIENT_RETRY_MAX_ATTEMPTS_DEFAULT = 10;
  public static final String FS_HDLFS_HTTP_CLIENT_FAILOVER_MAX_ATTEMPTS_KEY = "fs.hdlfs.http.client.failover.max.attempts";
  public static final String FS_HDLFS_HTTP_CLIENT_FAILOVER_SLEEP_BASE_MS_KEY = "fs.hdlfs.http.client.failover.sleep.base.millis";
  public static final String FS_HDLFS_HTTP_CLIENT_FAILOVER_SLEEP_MAX_MS_KEY = "fs.hdlfs.http.client.failover.sleep.max.millis";
  public static final String FS_HDLFS_HTTP_CLIENT_RETRY_MAX_ATTEMPTS_KEY = "fs.hdlfs.http.client.retry.max.attempts";
  public static final String FS_HDLFS_HTTP_CLIENT_RETRY_POLICY_ENABLED_KEY = "fs.hdlfs.http.client.retry.policy.enabled";
  public static final String FS_HDLFS_HTTP_CLIENT_RETRY_POLICY_SPEC_KEY = "fs.hdlfs.http.client.retry.policy.spec";
  public static final String FS_HDLFS_HTTP_CLIENT_RETRY_POLICY_SPEC_DEFAULT = "5,3,500,30,10000,50";

  // impersonation support
  public static final String FS_HDLFS_IMPERSONATION_ENABLED_KEY = "fs.hdlfs.impersonation.enabled";
  public static final String FS_HDLFS_IMPERSONATION_USER_KEY = "fs.hdlfs.impersonation.user";
  public static final String FS_HDLFS_IMPERSONATION_USER_ROLES = "fs.hdlfs.impersonation.roles";
  public static final String TRUSTED_USER_HEADER = "X-SAP-Trusted-User";
  public static final String TRUSTED_USER_ROLES_HEADER = "X-SAP-Trusted-User-Roles";
  public static final String TRUSTED_USER_ENCODING_HEADER = "X-SAP-Trusted-User-Encoding";
  public static final String TRUSTED_USER_ENCODING = "b64-utf-8";

  public static final String FS_HDLFS_ENDPOINT_KEY = "fs.hdlfs.endpoint";
  public static final String FS_HDLFS_CONNECTION_ID = "fs.hdlfs.connection.id";
  public static final String FS_HDLFS_CONNECTION_ID_HEADER = "X-SAP-Connection-Id";
  public static final String FS_HDLFS_FILECONTAINER_KEY = "fs.hdlfs.filecontainer";

  public static final String FS_HDLFS_SSL_ENABLED_KEY = "fs.hdlfs.ssl.enabled";
  public static final String FS_HDLFS_SSL_ROTATION_ENABLED_KEY = "fs.hdlfs.ssl.rotation.enabled";
  public static final boolean FS_HDLFS_SSL_ROTATION_ENABLED_DEFAULT = true;
  public static final String FS_HDLFS_SSL_CAPATH_KEY = "fs.hdlfs.ssl.caPath";
  public static final String FS_HDLFS_SSL_CERTFILE_KEY = "fs.hdlfs.ssl.certfile";
  public static final String FS_HDLFS_SSL_KEYFILE_KEY = "fs.hdlfs.ssl.keyfile";
  public static final String FS_HDLFS_SSL_KEYFILE_PASSWORD_KEY = "fs.hdlfs.ssl.keyfile.password";
  public static final String FS_HDLFS_SSL_KEYFILE_PASSWORD_DEFAULT = "";
  public static final String FS_HDLFS_SSL_KEYSTORE_TYPE_KEY = "fs.hdlfs.ssl.keystore.type";
  public static final String FS_HDLFS_SSL_KEYSTORE_LOCATION_KEY = "fs.hdlfs.ssl.keystore.location";
  public static final String FS_HDLFS_SSL_KEYSTORE_PASSWORD_KEY = "fs.hdlfs.ssl.keystore.password";
  public static final String FS_HDLFS_SSL_KEYSTORE_KEYPASSWORD_KEY = "fs.hdlfs.ssl.keystore.keypassword";
  public static final String FS_HDLFS_SSL_KEYSTORE_TYPE_DEFAULT = "jks";
  public static final String FS_HDLFS_SSL_KEYSTORE_PASSWORD_DEFAULT = "";
  public static final String FS_HDLFS_SSL_TRUSTSTORE_TYPE_KEY = "fs.hdlfs.ssl.truststore.type";
  public static final String FS_HDLFS_SSL_TRUSTSTORE_LOCATION_KEY = "fs.hdlfs.ssl.truststore.location";
  public static final String FS_HDLFS_SSL_TRUSTSTORE_PASSWORD_KEY = "fs.hdlfs.ssl.truststore.password";
  public static final String FS_HDLFS_SSL_TRUSTSTORE_TYPE_DEFAULT = "jks";
  public static final String FS_HDLFS_SSL_TRUSTSTORE_PASSWORD_DEFAULT = "";
  public static final String FS_HDLFS_SSL_TRUSTSTORE_LOCATION_DEFAULT = "";
  public static final String FS_HDLFS_KEYSTORES_FACTORY_CLASS_KEY = "fs.hdlfs.ssl.keystores.factory.class";
  public static final Class FS_HDLFS_KEYSTORES_FACTORY_CLASS_DEFAULT = FileBasedKeyStoresFactory.class;

  public static final int FS_HDLFS_CONNECTION_TIMEOUT_DEFAULT = 60_000; // ms = 60 secs
  public static final int FS_HDLFS_READ_TIMEOUT_DEFAULT = 60_000; // ms = 60 secs

  public static final String FS_HDLFS_HTTP_CLIENT_ADDITIONAL_HEADERS_KEY_PREFIX = "fs.hdlfs.http.client.additional-headers.";

  public static final int FS_HDLFS_OPERATION_OPEN_CHUNK_SIZE_DEFAULT = 4 * 1024 * 1024; // 4 MiB
  public static final String FS_HDLFS_OPERATION_CREATE_MODE_KEY = "fs.hdlfs.operation.create.mode";
  public static final String FS_HDLFS_OPERATION_MKDIRS_MODE_KEY = "fs.hdlfs.operation.mkdirs.mode";
  public static final String FS_HDLFS_OPERATION_OPEN_MODE_KEY = "fs.hdlfs.operation.open.mode";
  public static final String FS_HDLFS_OPERATION_OPEN_CHUNK_SIZE = "fs.hdlfs.operation.open.chunk.size";

  public static final String FS_HDLFS_THREADS_FACTORY_PROVIDER_CLASS_KEY = "fs.hdlfs.threads.factory-provider.class";

  // Direct access
  public static final String FS_HDLFS_DIRECT_ACCESS_MODE_KEY = "fs.hdlfs.direct-access.mode";
  public static final String FS_HDLFS_DIRECT_ACCESS_OPEN_CHUNK_SIZE_BYTES_KEY = "fs.hdlfs.direct-access.operation.open.chunk.size-bytes";
  public static final int FS_HDLFS_DIRECT_ACCESS_OPEN_CHUNK_SIZE_BYTES_DEFAULT = 10_485_760; // 10 MiB
  public static final String FS_HDLFS_DIRECT_ACCESS_OPEN_SIGNED_URL_EXPIRATION_SAFETY_MARGIN_SECONDS_KEY = "fs.hdlfs.direct-access.operation.open.signed-url-expiration-safety-margin-seconds";
  public static final int FS_HDLFS_DIRECT_ACCESS_OPEN_SIGNED_URL_EXPIRATION_SAFETY_MARGIN_SECONDS_DEFAULT = 5;
  public static final String FS_HDLFS_DIRECT_ACCESS_CREATE_SIGNED_URL_EXPIRATION_SAFETY_MARGIN_SECONDS_KEY = "fs.hdlfs.direct-access.operation.create.signed-url-expiration-safety-margin-seconds";
  public static final int FS_HDLFS_DIRECT_ACCESS_CREATE_SIGNED_URL_EXPIRATION_SAFETY_MARGIN_SECONDS_DEFAULT = 5;
  public static final String FS_HDLFS_DIRECT_ACCESS_GCS_CREATE_CHUNK_SIZE_BYTES_KEY = "fs.hdlfs.direct-access.gcs.operation.create.chunk.size-bytes";
  public static final String FS_HDLFS_DIRECT_ACCESS_S3_CREATE_CHUNK_SIZE_BYTES_KEY = "fs.hdlfs.direct-access.s3.operation.create.chunk.size-bytes";
  public static final String FS_HDLFS_DIRECT_ACCESS_WASB_CREATE_CHUNK_SIZE_BYTES_KEY = "fs.hdlfs.direct-access.wasb.operation.create.chunk.size-bytes";
  public static final int FS_HDLFS_DIRECT_ACCESS_GCS_CREATE_CHUNK_SIZE_BYTES_DEFAULT = 134_217_728 ; // 128 MiB
  public static final int FS_HDLFS_DIRECT_ACCESS_S3_CREATE_CHUNK_SIZE_BYTES_DEFAULT = 134_217_728 ; // 128 MiB
  public static final int FS_HDLFS_DIRECT_ACCESS_WASB_CREATE_CHUNK_SIZE_BYTES_DEFAULT = 16_777_216 ; // 16 MiB

  // Direct access - HttpClient
  public static final String FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_CONNECTIONS_KEEP_ALIVE_SECONDS_KEY = "fs.hdlfs.direct-access.http-client.connections.keep-alive-seconds";
  public static final int FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_CONNECTIONS_KEEP_ALIVE_SECONDS_DEFAULT = 300;
  public static final String FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_CONNECTIONS_MAX_COUNT_KEY = "fs.hdlfs.direct-access.http-client.connections.max-count";
  public static final int FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_CONNECTIONS_MAX_COUNT_DEFAULT = 50;
  public static final String FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_CONNECTIONS_TTL_SECONDS_KEY = "fs.hdlfs.direct-access.http-client.connections.ttl-seconds";
  public static final int FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_CONNECTIONS_TTL_SECONDS_DEFAULT = 600;
  public static final String FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_CONNECTIONS_VALIDATE_AFTER_INACTIVITY_MS_KEY = "fs.hdlfs.direct-access.http-client.connections.validate-after-inactivity-ms";
  public static final int FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_CONNECTIONS_VALIDATE_AFTER_INACTIVITY_MS_DEFAULT = 2_000;
  public static final String FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_CONNECT_TIMEOUT_MS_KEY = "fs.hdlfs.direct-access.http-client.connect-timeout-ms";
  public static final int FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_CONNECT_TIMEOUT_MS_DEFAULT = 60_000; // 60 secs
  public static final String FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_SOCKET_TIMEOUT_MS_KEY = "fs.hdlfs.direct-access.http-client.socket-timeout-ms";
  public static final int FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_SOCKET_TIMEOUT_MS_DEFAULT = 60_000; // 60 secs

  // Direct access - HttpClient - Retries
  public static final String FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_RETRIES_MAX_COUNT_KEY = "fs.hdlfs.direct-access.http-client.retries.max-count";
  public static final int FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_RETRIES_MAX_COUNT_DEFAULT = 10;
  public static final String FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_RETRIES_MAX_INTERVAL_MS_KEY = "fs.hdlfs.direct-access.http-client.retries.max-interval-ms";
  public static final int FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_RETRIES_MAX_INTERVAL_MS_DEFAULT = 5000;
  public static final String FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_RETRIES_MIN_INTERVAL_MS_KEY = "fs.hdlfs.direct-access.http-client.retries.min-interval-ms";
  public static final int FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_RETRIES_MIN_INTERVAL_MS_DEFAULT = 100;
  public static final String FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_RETRY_SENT_REQUESTS_KEY = "fs.hdlfs.direct-access.http-client.retries.retry-sent-requests";
  public static final boolean FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_RETRY_SENT_REQUESTS_DEFAULT = true;
  public static final String FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_NON_RETRIABLE_EXCEPTIONS_KEY = "fs.hdlfs.direct-access.http-client.retries.non-retriable-exceptions";
  public static final Class[] FS_HDLFS_DIRECT_ACCESS_HTTP_CLIENT_NON_RETRIABLE_EXCEPTIONS_DEFAULT = {InterruptedIOException.class};

  // Direct access - MultiPart Upload
  public static final String FS_HDLFS_DIRECT_ACCESS_MULTIPART_UPLOAD_THREAD_POOL_SIZE_KEY = "fs.hdlfs.direct-access.multipart-upload.thread-pool-size";
  public static final int FS_HDLFS_DIRECT_ACCESS_MULTIPART_UPLOAD_THREAD_POOL_SIZE_DEFAULT = 50;
  public static final String FS_HDLFS_DIRECT_ACCESS_MULTIPART_UPLOAD_THREAD_POOL_QUEUE_SIZE_KEY = "fs.hdlfs.direct-access.multipart-upload.thread-pool-queue-size";
  public static final int FS_HDLFS_DIRECT_ACCESS_MULTIPART_UPLOAD_THREAD_POOL_QUEUE_SIZE_DEFAULT = 128;
  public static final String FS_HDLFS_DIRECT_ACCESS_MULTIPART_UPLOAD_THREAD_POOL_KEEP_ALIVE_SECS_KEY = "fs.hdlfs.direct-access.multipart-upload.thread-pool-keep-alive-secs";
  public static final int FS_HDLFS_DIRECT_ACCESS_MULTIPART_UPLOAD_THREAD_POOL_KEEP_ALIVE_SECS_DEFAULT = 60;
  public static final String FS_HDLFS_DIRECT_ACCESS_MULTIPART_UPLOAD_MAX_ACTIVE_CHUNKS_KEY = "fs.hdlfs.direct-access.multipart-upload.max-active-chunks";
  public static final int FS_HDLFS_DIRECT_ACCESS_MULTIPART_UPLOAD_MAX_ACTIVE_CHUNKS_DEFAULT = 5;

  public static final String WHOAMI_OPTIONS_DIRECT_ACCESS_TYPE_KEY = "direct-access-type";

  // ByteBufferPool
  public static final String FS_GLOBAL_BUFFER_POOL_BUFFER_TYPE_KEY = "fs.global-buffer-pool.buffers.type";
  public static final String FS_GLOBAL_BUFFER_POOL_BUFFER_TYPE_DEFAULT = "HEAP";
  public static final String FS_GLOBAL_BUFFER_POOL_THREAD_LOCAL_BUFFER_TYPE_KEY = "fs.global-buffer-pool.thread-local.buffers.type";
  public static final String FS_GLOBAL_BUFFER_POOL_THREAD_LOCAL_BUFFER_TYPE_DEFAULT = "HEAP";

  // Consistent write path patterns
  static final String FS_HDLFS_CONSISTENT_WRITE_PATH_PATTERNS = "fs.hdlfs.consistent-write.path.patterns";
  static final String FS_HDLFS_CONSISTENT_WRITE_PATH_PATTERNS_SEPARATOR_KEY = "fs.hdlfs.consistent-write.path.patterns.separator";
  static final String FS_HDLFS_CONSISTENT_WRITE_PATH_PATTERNS_SEPARATOR_DEFAULT = ",";

  public static final int HTTP_PORT = 80;
  public static final int HTTPS_PORT = 443;

  // support for optimized committer
  public static final int HDLFS_OUTPUT_COMMITTER_DELETE_BATCH_MAX_RETRIES_DEFAULT = 50;
  public static final int HDLFS_OUTPUT_COMMITTER_DELETE_BATCH_RETRY_TIMEOUT_MS_DEFAULT = 100;
  public static final int HDLFS_OUTPUT_COMMITTER_DELETE_BATCH_SIZE_DEFAULT = 16;
  static final int HDLFS_OUTPUT_COMMITTER_THREADPOOL_KEEP_ALIVE_SECS_DEFAULT = 60;
  public static final String MAPREDUCE_OUTPUTCOMMITTER_FACTORY_SCHEME_HDLFS_KEY = "mapreduce.outputcommitter.factory.scheme.hdlfs";
  static final String PENDING_SUFFIX = ".pending";
  static final String PENDINGSET_SUFFIX = ".pendingset";
  static final String PENDING_PREFIX_NAME = "__pending";
  static final String BASE_PREFIX_NAME = "__base";
  static final String HDLFS_OUTPUT_COMMITTER_THREADPOOL_MAX_ACTIVE_TASKS_KEY = "fs.hdlfs.outputcommitter.threads.global.max.active.tasks";
  static final String HDLFS_OUTPUT_COMMITTER_THREADPOOL_MAX_WAITING_TASKS_KEY = "fs.hdlfs.outputcommitter.threads.global.max.waiting.tasks";
  static final String HDLFS_OUTPUT_COMMITTER_THREADPOOL_KEEP_ALIVE_SECS_KEY = "fs.hdlfs.outputcommitter.threads.global.keep-alive-secs";

  public static final String HDLFS_OUTPUT_COMMITTER_DELETE_BATCH_SIZE_KEY = "fs.hdlfs.outputcommitter.delete-batch.size";
  public static final String HDLFS_OUTPUT_COMMITTER_DELETE_BATCH_MAX_RETRIES_KEY = "fs.hdlfs.outputcommitter.delete-batch.max.retries";
  public static final String HDLFS_OUTPUT_COMMITTER_DELETE_BATCH_RETRY_TIMEOUT_MS_KEY = "fs.hdlfs.outputcommitter.delete-batch.retry.timeout.ms";


  // support for FsGuard
  static boolean FSCACHE_ENABLED_DEFAULT = false;
  static int FSCACHE_MAX_LISTSTATUS_RETRIES_DEFAULT = 50;
  static int FSCACHE_LISTSTATUS_RETRY_TIMEOUT_MS_DEFAULT = 500;
  static String FSCACHE_ENABLED = "fs.hdlfs.outputcommitter.fscache.enabled";
  static String FSCACHE_LISTSTATUS_RETRIES_KEY = "fs.hdlfs.outputcommitter.fscache.liststatus.retry.max";
  static String FSCACHE_LISTSTATUS_RETRY_TIMEOUT_KEY = "fs.hdlfs.outputcommitter.fscache.liststatus.retry.timeout";

  // json patch constants
  static String JSON_PATCH_OP_KEY = "op";
  static String JSON_PATCH_PATH_KEY = "path";
  static String JSON_PATCH_VALUE_KEY = "value";
  static String JSON_PATCH_ADD_OP = "add";
  static String JSON_PATCH_TEST_OP = "test";
  static String MARK_AS_DELETED_FIELD_NAME = "markAsDeleted";
  static String TEMP_PATH_FIELD_NAME = "tempPath";
  static String COMPLETE_FIELD_NAME = "isComplete";
  static String COMMIT_TIME_FIELD_NAME = "commitTime";
  static String IS_PREFIX_FIELD_NAME = "isPrefix";
  static String LOCK_OWNER_FIELD_NAME = "lockOwner";

  // hdlfs lock manager constants
  static final String FS_HDLFS_LOCK_ACQUIRE_RETRY_SLEEP_MAX_MS_KEY = "fs.hdlfs.lock.acquire.retry.sleep.max.millis";
  static final long FS_HDLFS_LOCK_ACQUIRE_RETRY_SLEEP_MAX_MS_DEFAULT = 10_000; // 10s
  static final String FS_HDLFS_LOCK_ACQUIRE_RETRY_SLEEP_BASE_MS_KEY = "fs.hdlfs.lock.acquire.retry.sleep.base.millis";
  static final long FS_HDLFS_LOCK_ACQUIRE_RETRY_SLEEP_BASE_MS_DEFAULT = 1_000; // 1s
  static final double FS_HDLFS_LOCK_ACQUIRE_RETRY_SCALE_FACTOR = 1.3;
  static final String FS_HDLFS_LOCK_RENEW_INTERVAL_MS_KEY = "fs.hdlfs.lock.renew.interval.ms";
  static final long FS_HDLFS_LOCK_RENEW_INTERVAL_MS_DEFAULT = 15_000; // 15s
  static final int FS_HDLFS_LOCK_RENEW_THREAD_POOL_SIZE = 1;

  // hdlfslogstore constants
  static final String LAST_CHECKPOINT_SUFFIX = "/_delta_log/_last_checkpoint";
  static final String DELTA_LOG_SUFFIX = "_delta_log";

  // OPEN check exists configuration
  public static final String FS_HDLFS_OPERATION_OPEN_CHECK_EXISTS_REGEX = "fs.hdlfs.operation.open.check-exists.regex";
  public static final String FS_HDLFS_OPERATION_OPEN_CHECK_EXISTS_REGEX_DEFAULT = String.format("^.*%s$", LAST_CHECKPOINT_SUFFIX);

  // MERGE retry-policy configuration
  public static String CONFIG_MERGE_RETRY_FILE_NOT_FOUND_KEY_PREFIX = "fs.hdlfs.multipart.upload.merge.retry.file-not-found.";
  public static String CONFIG_MERGE_RETRY_FILE_NOT_FOUND_ENABLED_KEY = CONFIG_MERGE_RETRY_FILE_NOT_FOUND_KEY_PREFIX + "enabled";
  public static String CONFIG_MERGE_RETRY_FILE_NOT_FOUND_LIMIT_KEY = CONFIG_MERGE_RETRY_FILE_NOT_FOUND_KEY_PREFIX + "limit";
  public static String CONFIG_MERGE_RETRY_FILE_NOT_FOUND_INTERVAL_KEY = CONFIG_MERGE_RETRY_FILE_NOT_FOUND_KEY_PREFIX + "interval-ms";

  // OPEN retry-policy configuration
  public static String CONFIG_OPEN_RETRY_FILE_NOT_FOUND_KEY_PREFIX = "fs.hdlfs.operation.open.retry.file-not-found.";
  public static String CONFIG_OPEN_RETRY_FILE_NOT_FOUND_ENABLED_KEY = CONFIG_OPEN_RETRY_FILE_NOT_FOUND_KEY_PREFIX + "enabled";
  public static String CONFIG_OPEN_RETRY_FILE_NOT_FOUND_LIMIT_KEY = CONFIG_OPEN_RETRY_FILE_NOT_FOUND_KEY_PREFIX + "limit";
  public static String CONFIG_OPEN_RETRY_FILE_NOT_FOUND_INTERVAL_KEY = CONFIG_OPEN_RETRY_FILE_NOT_FOUND_KEY_PREFIX + "interval-ms";

  // DELETE MPU temp directory retry-policy configuration
  public static String CONFIG_DELETE_MPU_TEMP_DIR_RETRY_DIR_NOT_EMPTY_KEY_PREFIX = "fs.hdlfs.multipart.upload.delete.retry.dir-not-empty.";
  public static String CONFIG_DELETE_MPU_TEMP_DIR_RETRY_DIR_NOT_EMPTY_ENABLED_KEY = CONFIG_DELETE_MPU_TEMP_DIR_RETRY_DIR_NOT_EMPTY_KEY_PREFIX + "enabled";
  public static String CONFIG_DELETE_MPU_TEMP_DIR_RETRY_DIR_NOT_EMPTY_LIMIT_KEY = CONFIG_DELETE_MPU_TEMP_DIR_RETRY_DIR_NOT_EMPTY_KEY_PREFIX + "limit";
  public static String CONFIG_DELETE_MPU_TEMP_DIR_RETRY_DIR_NOT_EMPTY_INTERVAL_KEY = CONFIG_DELETE_MPU_TEMP_DIR_RETRY_DIR_NOT_EMPTY_KEY_PREFIX + "interval-ms";

  // Local filesystem caches configuration
  public static int FS_LOCAL_CACHE_MKDIR_ENTRIES_MAX_SIZE_DEFAULT = 1_000;
  public static int FS_LOCAL_CACHE_PENDING_FILES_CREATED_ENTRIES_MAX_SIZE_DEFAULT = 50000;
  public static String FS_LOCAL_CACHE_MKDIR_ENTRIES_MAX_SIZE = "fs.hdlfs.local-cache.global.mkdir-entries.max-size";
  public static String FS_LOCAL_CACHE_PENDING_FILES_CREATED_ENTRIES_MAX_SIZE = "fs.hdlfs.local-cache.global.pending-files-created.max-size";

  // Delete batch operation mode configuration
  public static boolean FS_OPERATION_DELETE_BATCH_ASYNC_ENABLED_DEFAULT = false;
  public static String FS_OPERATION_DELETE_BATCH_ASYNC_ENABLED_KEY = "fs.hdlfs.operation.delete-batch.async.enabled";

  // following configurations will only be used if async delete batch is enabled
  public static boolean FS_OPERATION_DELETE_BATCH_ASYNC_COMPLETE_ENABLED_DEFAULT = false;
  public static int FS_OPERATION_DELETE_BATCH_ASYNC_COMPLETE_WAIT_TIME_SECS_DEFAULT = 60;
  public static String FS_OPERATION_DELETE_BATCH_ASYNC_COMPLETE_ENABLED_KEY = "fs.hdlfs.operation.delete-batch.async.complete.enabled";
  public static String FS_OPERATION_DELETE_BATCH_ASYNC_COMPLETE_WAIT_TIME_SECS_KEY = "fs.hdlfs.operation.delete-batch.async.complete.wait-time.seconds";

}

// © 2021-2024 SAP SE or an SAP affiliate company. All rights reserved.




© 2015 - 2025 Weber Informatics LLC | Privacy Policy