public class StoreConfig
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
int |
storeCompactionCheckFrequencyInHours
The frequency (in hours) at which a store is checked to see whether it is ready for compaction.
|
boolean |
storeCompactionEnableDirectIO
Whether direct IO are to be enable or not for compaction.
|
int |
storeCompactionMinBufferSize
The minimum buffer size for compaction copy phase.
|
int |
storeCompactionOperationsBytesPerSec
The rate of I/O allowed per disk for compaction.
|
java.lang.String |
storeCompactionPolicyFactory
The factory class used to get the compaction policy
|
java.lang.String[] |
storeCompactionTriggers
Comma separated list of the compaction triggers that should be enabled.
|
java.util.Set<java.nio.file.attribute.PosixFilePermission> |
storeDataFilePermission
Specifies the permissions for data files in store.
|
int |
storeDataFlushDelaySeconds
The delay after which the data flush thread starts on startup
|
long |
storeDataFlushIntervalSeconds
The frequency at which the data gets flushed to disk
|
int |
storeDeletedMessageRetentionDays
How long (in days) a key must be in deleted state before it is hard deleted.
|
boolean |
storeEnableHardDelete
Whether hard deletes are to be enabled or not
|
int |
storeHardDeleteOperationsBytesPerSec
The rate of I/O allowed per disk for hard deletes.
|
double |
storeIndexBloomMaxFalsePositiveProbability
The max probability of a false positive for the index bloom filter
|
int |
storeIndexMaxMemorySizeBytes
The max size of the index that can reside in memory in bytes for a single store
|
int |
storeIndexMaxNumberOfInmemElements
The max number of the elements in the index that can be in memory for a single store
|
IndexMemState |
storeIndexMemState
Provides a hint for how indexes should be treated w.r.t memory
|
static java.lang.String |
storeIndexMemStateName |
int |
storeIndexPersistedEntryMinBytes
Specifies the minimum size that index entries should occupy when they get persisted.
|
boolean |
storeIndexRebuildBloomFilterEnabled
Whether to rebuild index bloom filter during startup.
|
int |
storeIoErrorCountToTriggerShutdown
Specifies the threshold I/O error count of store to trigger shutdown operation on the store.
|
java.lang.String |
storeKeyFactory
The factory class the store uses to creates its keys
|
int |
storeMaxNumberOfEntriesToReturnFromJournal
The max number of entries that the journal will return each time it is queried for entries
|
int |
storeMinLogSegmentCountToReclaimToTriggerCompaction
The minimum number of log segments to be reclaimed to trigger compaction.
|
int |
storeMinUsedCapacityToTriggerCompactionInPercentage
The minimum capacity that has to be used (as a percentage of the total capacity) for the store to trigger
compaction
|
java.util.Set<java.nio.file.attribute.PosixFilePermission> |
storeOperationFilePermission
Specifies the permissions for operation files in store.
|
int |
storeReadOnlyEnableSizeThresholdPercentage
Specifies the size threshold (as percentage of maximum size) of a store for converting the chunk to RO from RW
|
static java.lang.String |
storeReadOnlyEnableSizeThresholdPercentageName |
int |
storeReadWriteEnableSizeThresholdPercentageDelta
Specifies the size threshold delta below
storeReadOnlyEnableSizeThresholdPercentageName that a store will
be converted from RO to RW |
static java.lang.String |
storeReadWriteEnableSizeThresholdPercentageDeltaName |
boolean |
storeReplicaStatusDelegateEnable
Enables or disables ReplicaStatusDelegate to dynamically set the replica sealed/stopped status
|
static java.lang.String |
storeReplicaStatusDelegateEnableName |
long |
storeSegmentSizeInBytes
The size of a single segment in the log.
|
boolean |
storeSetFilePermissionEnabled
Whether to set certain permissions for files in store.
|
int |
storeStatsBucketCount
The number of buckets for stats bucketing, a value of 0 will disable bucketing.
|
long |
storeStatsBucketSpanInMinutes
The time span of each bucket in minutes.
|
int |
storeStatsIndexEntriesPerSecond
Specifies the number of index entries that can be read per second for stats collection.
|
long |
storeStatsRecentEntryProcessingIntervalInMinutes
Period in minutes to specify how frequent is the queue processor executed.
|
long |
storeStatsWaitTimeoutInSecs
The upper limit in seconds for requests to wait for a ongoing construction of buckets (that contains the answer)
to complete.
|
int |
storeTtlUpdateBufferTimeSeconds
Specifies the minimum number of seconds before a blob's current expiry time (creation time + TTL) that the current
time has to be in order for a TTL update operation on the blob to succeed.
|
static java.lang.String |
storeTtlUpdateBufferTimeSecondsName |
boolean |
storeUuidBasedBloomFilterEnabled
Whether to populate bloom filter with UUID only for index segment.
|
boolean |
storeValidateAuthorization
Enables or disables accountId and containerId validation for GET/DELETE request.
|
Constructor and Description |
---|
StoreConfig(VerifiableProperties verifiableProperties) |
@Config(value="store.key.factory") @Default(value="com.github.ambry.commons.BlobIdFactory") public final java.lang.String storeKeyFactory
@Config(value="store.data.flush.interval.seconds") @Default(value="60") public final long storeDataFlushIntervalSeconds
@Config(value="store.index.max.memory.size.bytes") @Default(value="20971520") public final int storeIndexMaxMemorySizeBytes
@Config(value="store.data.flush.delay.seconds") @Default(value="5") public final int storeDataFlushDelaySeconds
@Config(value="store.index.max.number.of.inmem.elements") @Default(value="10000") public final int storeIndexMaxNumberOfInmemElements
@Config(value="store.max.number.of.entries.to.return.from.journal") @Default(value="5000") public final int storeMaxNumberOfEntriesToReturnFromJournal
@Config(value="store.index.bloom.max.false.positive.probability") @Default(value="0.01") public final double storeIndexBloomMaxFalsePositiveProbability
@Config(value="store.deleted.message.retention.days") @Default(value="7") public final int storeDeletedMessageRetentionDays
@Config(value="store.hard.delete.operations.bytes.per.sec") @Default(value="100*1024") public final int storeHardDeleteOperationsBytesPerSec
@Config(value="store.compaction.operations.bytes.per.sec") @Default(value="1*1024*1024") public final int storeCompactionOperationsBytesPerSec
@Config(value="store.compaction.enable.direct.io") @Default(value="false") public final boolean storeCompactionEnableDirectIO
@Config(value="store.compaction.min.buffer.size") @Default(value="10*1024*1024") public final int storeCompactionMinBufferSize
@Config(value="store.enable.hard.delete") @Default(value="false") public final boolean storeEnableHardDelete
@Config(value="store.segment.size.in.bytes") @Default(value="9223372036854775807") public final long storeSegmentSizeInBytes
Store
.@Config(value="store.compaction.triggers") @Default(value="") public final java.lang.String[] storeCompactionTriggers
@Config(value="store.compaction.check.frequency.in.hours") @Default(value="7*24") public final int storeCompactionCheckFrequencyInHours
@Config(value="store.min.used.capacity.to.trigger.compaction.in.percentage") @Default(value="50") public final int storeMinUsedCapacityToTriggerCompactionInPercentage
@Config(value="store.compaction.policy.factory") @Default(value="com.github.ambry.store.CompactAllPolicyFactory") public final java.lang.String storeCompactionPolicyFactory
@Config(value="store.min.log.segment.count.to.reclaim.to.trigger.compaction") @Default(value="1") public final int storeMinLogSegmentCountToReclaimToTriggerCompaction
@Config(value="store.stats.bucket.count") @Default(value="0") public final int storeStatsBucketCount
@Config(value="store.stats.bucket.span.in.minutes") @Default(value="60") public final long storeStatsBucketSpanInMinutes
@Config(value="store.stats.recent.entry.processing.interval.in.minutes") @Default(value="2") public final long storeStatsRecentEntryProcessingIntervalInMinutes
@Config(value="store.stats.wait.timeout.in.secs") @Default(value="2*60") public final long storeStatsWaitTimeoutInSecs
@Config(value="store.stats.index.entries.per.second") @Default(value="240000") public final int storeStatsIndexEntriesPerSecond
@Config(value="store.index.persisted.entry.min.bytes") @Default(value="115") public final int storeIndexPersistedEntryMinBytes
@Config(value="store.validate.authorization") @Default(value="false") public final boolean storeValidateAuthorization
@Config(value="store.replica.status.delegate.enable") @Default(value="false") public final boolean storeReplicaStatusDelegateEnable
public static final java.lang.String storeReplicaStatusDelegateEnableName
@Config(value="store.read.only.enable.size.threshold.percentage") @Default(value="95") public final int storeReadOnlyEnableSizeThresholdPercentage
public static final java.lang.String storeReadOnlyEnableSizeThresholdPercentageName
@Config(value="store.read.write.enable.size.threshold.percentage.delta") @Default(value="5") public final int storeReadWriteEnableSizeThresholdPercentageDelta
storeReadOnlyEnableSizeThresholdPercentageName
that a store will
be converted from RO to RWpublic static final java.lang.String storeReadWriteEnableSizeThresholdPercentageDeltaName
@Config(value="store.ttl.update.buffer.time.seconds") @Default(value="60 * 60 * 24") public final int storeTtlUpdateBufferTimeSeconds
public static final java.lang.String storeTtlUpdateBufferTimeSecondsName
@Config(value="store.index.mem.state") @Default(value="MMAP_WITHOUT_FORCE_LOAD") public final IndexMemState storeIndexMemState
public static final java.lang.String storeIndexMemStateName
@Config(value="store.io.error.count.to.trigger.shutdown") @Default(value="Integer.MAX_VALUE") public final int storeIoErrorCountToTriggerShutdown
@Config(value="store.set.file.permission.enabled") @Default(value="false") public final boolean storeSetFilePermissionEnabled
@Config(value="store.data.file.permission") @Default(value="rw-rw----") public final java.util.Set<java.nio.file.attribute.PosixFilePermission> storeDataFilePermission
@Config(value="store.operation.file.permission") @Default(value="rw-rw-r--") public final java.util.Set<java.nio.file.attribute.PosixFilePermission> storeOperationFilePermission
@Config(value="store.uuid.based.bloom.filter.enabled") @Default(value="false") public final boolean storeUuidBasedBloomFilterEnabled
@Config(value="store.index.rebuild.bloom.filter.enabled") @Default(value="false") public final boolean storeIndexRebuildBloomFilterEnabled
public StoreConfig(VerifiableProperties verifiableProperties)