Class RocksDBServerConfig
java.lang.Object
com.linkedin.davinci.store.rocksdb.RocksDBServerConfig
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Length of the capped prefix extractor used with RocksDB Plain Table.static final String
static final String
static final String
static final String
static final String
static final String
Check this page to find more details: https://github.com/facebook/rocksdb/wiki/BlobDBstatic final String
static final String
static final String
static final String
Shared block cache for compressed data.static final String
the implementation of block cache that the venice server should use.static final String
number of bits to count cache shards, total shard count would be 2 to the power of this number.static final String
Shared block cache across all the RocksDB databases.static final String
if set to True, Cache size will strictly stay within set bounds, by allocating space for indexes and metadata within cache size.static final String
static final String
Comments from rocksdb c++ code: Allows OS to incrementally sync files to disk while they are being written, asynchronously, in the background.static final String
Every time, when RocksDB tries to open a database, it will spin up multiple threads to load the file metadata in parallel, and the application could hit the thread limit issue if there are many RocksDB open operations at the same time.static final String
Thread pool being used by all the RocksDB databases.static final String
Thread pool being used by all the RocksDB databases.static final String
static final String
static final String
static final String
When the number of level-0 SST files reaches level0_slowdown_writes_trigger, writes are stalled.static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
Max size of level base, and by default the next level size will be 10 times bigger;static final String
Currently, the max file open thread cnt per open operation is 16 by default.static final String
static final String
static final String
Max memtable count per database;static final String
static final String
Max total WAL log size per database;static final String
Page size for huge page for the arena used by the memtable in rocksdb.static final String
Max memtable size per database;static final String
static final String
static final String
Please checkCompactionStyle
to find all the available options.static final String
Compression type, and please check this enum class to find out all the available options:CompressionType
.static final String
Ability to use direct IO for disk reads, might yield better performance on Azure disks.static final String
static final String
static final String
Shared block cache used by RMD column family across all the RocksDB databases.static final String
static final String
If set to true, we will put index/filter blocks to the block cache.static final String
File block size, and this config has impact to the index size and read performance.static final String
Whether to enable rocksdb statistics.static final String
static final String
Target file size, and this will only apply to hybrid store since batch-only push from VPJ is using SSTFileWriter directly.static final String
https://github.com/facebook/rocksdb/wiki/Write-Buffer-Manager The total memory usage cap of all the memtables for every RocksDB database.static final String
Check the following link for more details: https://github.com/facebook/rocksdb/wiki/Rate-Limiter This is used to throttle flush and compaction. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionlong
int
double
double
int
int
int
int
int
int
int
int
int
int
int
int
int
int
long
int
long
long
int
long
boolean
int
long
int
int
int
long
int
long
long
int
org.rocksdb.CompactionStyle
org.rocksdb.CompressionType
long
long
long
boolean
int
long
boolean
boolean
boolean
boolean
boolean
boolean
DO NOT ENABLE! This is still experimental.boolean
boolean
boolean
boolean
void
setBlockBaseFormatVersion
(int version) void
setRocksdbOptionsCompressionType
(String compressionType)
-
Field Details
-
ROCKSDB_OPTIONS_USE_DIRECT_READS
Ability to use direct IO for disk reads, might yield better performance on Azure disks. Also makes caching behavior more consistent, by limiting the caching to only RocksDB. This also reduces number of mem copies which might yield improved performance.- See Also:
-
ROCKSDB_ENV_FLUSH_POOL_SIZE
Thread pool being used by all the RocksDB databases. https://github.com/facebook/rocksdb/wiki/RocksDB-Tuning-Guide The maximum number of concurrent flush operations. It is usually good enough to set this to 1.- See Also:
-
ROCKSDB_ENV_COMPACTION_POOL_SIZE
Thread pool being used by all the RocksDB databases. https://github.com/facebook/rocksdb/wiki/RocksDB-Tuning-Guide The maximum number of concurrent background compactions. The default is 1, but to fully utilize your CPU and storage you might want to increase this to the minimum of (the number of cores in the system, the disk throughput divided by the average throughput of one compaction thread).- See Also:
-
ROCKSDB_OPTIONS_COMPRESSION_TYPE
Compression type, and please check this enum class to find out all the available options:CompressionType
. For now, the default option is to disable compression, and use Venice native compression support if necessary.- See Also:
-
ROCKSDB_OPTIONS_COMPACTION_STYLE
Please checkCompactionStyle
to find all the available options.- See Also:
-
ROCKSDB_BLOCK_CACHE_SIZE_IN_BYTES
Shared block cache across all the RocksDB databases.- See Also:
-
ROCKSDB_RMD_BLOCK_CACHE_SIZE_IN_BYTES
Shared block cache used by RMD column family across all the RocksDB databases.- See Also:
-
ROCKSDB_BLOCK_CACHE_COMPRESSED_SIZE_IN_BYTES
Shared block cache for compressed data.- See Also:
-
ROCKSDB_BLOCK_CACHE_SHARD_BITS
number of bits to count cache shards, total shard count would be 2 to the power of this number.- See Also:
-
ROCKSDB_BLOCK_CACHE_IMPLEMENTATION
the implementation of block cache that the venice server should use. For supported implementations @seeRocksDBBlockCacheImplementations
Defaults to LRU- See Also:
-
ROCKSDB_BLOCK_CACHE_STRICT_CAPACITY_LIMIT
if set to True, Cache size will strictly stay within set bounds, by allocating space for indexes and metadata within cache size. This needs to be set to true to make OHC behavior and memory sizing predictable.- See Also:
-
ROCKSDB_SET_CACHE_INDEX_AND_FILTER_BLOCKS
If set to true, we will put index/filter blocks to the block cache. Otherwise, each "table reader" object will pre-load index/filter block during table initialization.- See Also:
-
ROCKSDB_SST_FILE_BLOCK_SIZE_IN_BYTES
File block size, and this config has impact to the index size and read performance.- See Also:
-
ROCKSDB_MEMTABLE_SIZE_IN_BYTES
Max memtable size per database;- See Also:
-
ROCKSDB_MAX_MEMTABLE_COUNT
Max memtable count per database;- See Also:
-
ROCKSDB_MIN_WRITE_BUFFER_NUMBER_TO_MERGE
- See Also:
-
ROCKSDB_MAX_TOTAL_WAL_SIZE_IN_BYTES
Max total WAL log size per database;- See Also:
-
ROCKSDB_MAX_BYTES_FOR_LEVEL_BASE
Max size of level base, and by default the next level size will be 10 times bigger;- See Also:
-
ROCKSDB_PLAIN_TABLE_FORMAT_ENABLED
- See Also:
-
CAPPED_PREFIX_EXTRACTOR_LENGTH
Length of the capped prefix extractor used with RocksDB Plain Table. Be cautious when tweaking this config because it might prevent reading old data written with a different extractor length. Therefore, changing it requires wiping the server data and offset.- See Also:
-
ROCKSDB_STORE_INDEX_IN_FILE
- See Also:
-
ROCKSDB_HUGE_PAGE_TLB_SIZE
- See Also:
-
ROCKSDB_BLOOM_BITS_PER_KEY
- See Also:
-
ROCKSDB_HASH_TABLE_RATIO
- See Also:
-
ROCKSDB_MAX_OPEN_FILES
- See Also:
-
ROCKSDB_TARGET_FILE_SIZE_IN_BYTES
Target file size, and this will only apply to hybrid store since batch-only push from VPJ is using SSTFileWriter directly.- See Also:
-
ROCKSDB_MEM_TABLE_HUGE_PAGE_SIZE_BYTES
Page size for huge page for the arena used by the memtable in rocksdb. If <=0, it won't allocate from huge page but from malloc. Users are responsible to reserve huge pages for it to be allocated. For example: sysctl -w vm.nr_hugepages=20 See linux doc Documentation/vm/hugetlbpage.txt If there isn't enough free huge page available, rocksdb will fall back to malloc.- See Also:
-
ROCKSDB_BYTES_PER_SYNC
Comments from rocksdb c++ code: Allows OS to incrementally sync files to disk while they are being written, asynchronously, in the background. This operation can be used to smooth out write I/Os over time. Users shouldn't rely on it for persistency guarantee. Issue one request for every bytes_per_sync written. 0 turns it off. Default: 0- See Also:
-
ROCKSDB_STATISTICS_ENABLED
Whether to enable rocksdb statistics. The reason to make it configurable is that there is about 5%-10% overhead by enabling statistics. https://github.com/facebook/rocksdb/wiki/Statistics- See Also:
-
ROCKSDB_TOTAL_MEMTABLE_USAGE_CAP_IN_BYTES
https://github.com/facebook/rocksdb/wiki/Write-Buffer-Manager The total memory usage cap of all the memtables for every RocksDB database.- See Also:
-
ROCKSDB_MAX_FILE_OPENING_THREADS
Currently, the max file open thread cnt per open operation is 16 by default. We could tune this param to reduce the possible maximum thread cnt;- See Also:
-
ROCKSDB_LEVEL0_FILE_NUM_COMPACTION_TRIGGER
When the number of level-0 SST files reaches level0_slowdown_writes_trigger, writes are stalled. When the number of level-0 SST files reaches level0_stop_writes_trigger, writes are fully stopped to wait for level-0 to level-1 compaction reduce the number of level-0 files.- See Also:
-
ROCKSDB_LEVEL0_SLOWDOWN_WRITES_TRIGGER
- See Also:
-
ROCKSDB_LEVEL0_STOPS_WRITES_TRIGGER
- See Also:
-
ROCKSDB_LEVEL0_FILE_NUM_COMPACTION_TRIGGER_WRITE_ONLY_VERSION
- See Also:
-
ROCKSDB_LEVEL0_SLOWDOWN_WRITES_TRIGGER_WRITE_ONLY_VERSION
- See Also:
-
ROCKSDB_LEVEL0_STOPS_WRITES_TRIGGER_WRITE_ONLY_VERSION
- See Also:
-
ROCKSDB_LEVEL0_FILE_NUM_COMPACTION_TRIGGER_FOR_READ_WRITE_LEADER
- See Also:
-
ROCKSDB_LEVEL0_SLOWDOWN_WRITES_TRIGGER_FOR_READ_WRITE_LEADER
- See Also:
-
ROCKSDB_LEVEL0_STOPS_WRITES_TRIGGER_FOR_READ_WRITE_LEADER
- See Also:
-
ROCKSDB_LEVEL0_COMPACTION_TUNING_FOR_READ_WRITE_LEADER_ENABLED
- See Also:
-
ROCKSDB_PUT_REUSE_BYTE_BUFFER
- See Also:
-
ROCKSDB_DB_OPEN_OPERATION_THROTTLE
Every time, when RocksDB tries to open a database, it will spin up multiple threads to load the file metadata in parallel, and the application could hit the thread limit issue if there are many RocksDB open operations at the same time. The following config is used to throttle the RocksDB open operations.- See Also:
-
ROCKSDB_WRITE_QUOTA_BYTES_PER_SECOND
Check the following link for more details: https://github.com/facebook/rocksdb/wiki/Rate-Limiter This is used to throttle flush and compaction.- See Also:
-
ROCKSDB_AUTO_TUNED_RATE_LIMITER_ENABLED
- See Also:
-
ROCKSDB_ATOMIC_FLUSH_ENABLED
- See Also:
-
ROCKSDB_SEPARATE_RMD_CACHE_ENABLED
- See Also:
-
ROCKSDB_BLOCK_BASE_FORMAT_VERSION
- See Also:
-
ROCKSDB_MAX_LOG_FILE_NUM
- See Also:
-
ROCKSDB_MAX_LOG_FILE_SIZE
- See Also:
-
RECORD_TRANSFORMER_VALUE_SCHEMA
- See Also:
-
ROCKSDB_BLOB_FILES_ENABLED
Check this page to find more details: https://github.com/facebook/rocksdb/wiki/BlobDB- See Also:
-
ROCKSDB_MIN_BLOB_SIZE_IN_BYTES
- See Also:
-
ROCKSDB_BLOB_FILE_SIZE_IN_BYTES
- See Also:
-
ROCKSDB_BLOB_GARBAGE_COLLECTION_AGE_CUTOFF
- See Also:
-
ROCKSDB_BLOB_GARBAGE_COLLECTION_FORCE_THRESHOLD
- See Also:
-
ROCKSDB_BLOB_FILE_STARTING_LEVEL
- See Also:
-
-
Constructor Details
-
RocksDBServerConfig
-
-
Method Details
-
getLevel0FileNumCompactionTriggerWriteOnlyVersion
public int getLevel0FileNumCompactionTriggerWriteOnlyVersion() -
getLevel0SlowdownWritesTriggerWriteOnlyVersion
public int getLevel0SlowdownWritesTriggerWriteOnlyVersion() -
getLevel0StopWritesTriggerWriteOnlyVersion
public int getLevel0StopWritesTriggerWriteOnlyVersion() -
getLevel0FileNumCompactionTrigger
public int getLevel0FileNumCompactionTrigger() -
getLevel0SlowdownWritesTrigger
public int getLevel0SlowdownWritesTrigger() -
getLevel0StopWritesTrigger
public int getLevel0StopWritesTrigger() -
getLevel0FileNumCompactionTriggerForReadWriteLeader
public int getLevel0FileNumCompactionTriggerForReadWriteLeader() -
getLevel0SlowdownWritesTriggerForReadWriteLeader
public int getLevel0SlowdownWritesTriggerForReadWriteLeader() -
getLevel0StopWritesTriggerForReadWriteLeader
public int getLevel0StopWritesTriggerForReadWriteLeader() -
isLevel0CompactionTuningForReadWriteLeaderEnabled
public boolean isLevel0CompactionTuningForReadWriteLeaderEnabled() -
getRocksDBUseDirectReads
public boolean getRocksDBUseDirectReads() -
getRocksDBEnvFlushPoolSize
public int getRocksDBEnvFlushPoolSize() -
getRocksDBEnvCompactionPoolSize
public int getRocksDBEnvCompactionPoolSize() -
getRocksDBOptionsCompressionType
public org.rocksdb.CompressionType getRocksDBOptionsCompressionType() -
getRocksDBOptionsCompactionStyle
public org.rocksdb.CompactionStyle getRocksDBOptionsCompactionStyle() -
getRocksDBBlockCacheSizeInBytes
public long getRocksDBBlockCacheSizeInBytes() -
getRocksDBRMDBlockCacheSizeInBytes
public long getRocksDBRMDBlockCacheSizeInBytes() -
getRocksDBBlockCacheImplementation
-
getRocksDBBlockCacheStrictCapacityLimit
public boolean getRocksDBBlockCacheStrictCapacityLimit() -
isRocksDBSetCacheIndexAndFilterBlocks
public boolean isRocksDBSetCacheIndexAndFilterBlocks() -
getRocksDBBlockCacheShardBits
public int getRocksDBBlockCacheShardBits() -
getRocksDBSSTFileBlockSizeInBytes
public long getRocksDBSSTFileBlockSizeInBytes() -
getRocksDBMemtableSizeInBytes
public long getRocksDBMemtableSizeInBytes() -
getRocksDBMaxMemtableCount
public int getRocksDBMaxMemtableCount() -
getRocksDBMinWriteBufferNumberToMerge
public int getRocksDBMinWriteBufferNumberToMerge() -
getRocksDBMaxTotalWalSizeInBytes
public long getRocksDBMaxTotalWalSizeInBytes() -
getRocksDBMaxBytesForLevelBase
public long getRocksDBMaxBytesForLevelBase() -
getMemTableHugePageSize
public long getMemTableHugePageSize() -
getRocksDBBytesPerSync
public long getRocksDBBytesPerSync() -
isRocksDBStatisticsEnabled
public boolean isRocksDBStatisticsEnabled() -
isRocksDBPlainTableFormatEnabled
public boolean isRocksDBPlainTableFormatEnabled()DO NOT ENABLE! This is still experimental. PlainTable gives ultra low latency on smaller DB partition (< 2GB), but its not backward compatible so enabling would require storing the format type into metadata and enable based on the format or some similar approach. For details about PlainTable https://github.com/facebook/rocksdb/wiki/PlainTable-Format -
isRocksDBStoreIndexInFile
public boolean isRocksDBStoreIndexInFile() -
getRocksDBHugePageTlbSize
public int getRocksDBHugePageTlbSize() -
getRocksDBBloomBitsPerKey
public int getRocksDBBloomBitsPerKey() -
getRocksDBTotalMemtableUsageCapInBytes
public long getRocksDBTotalMemtableUsageCapInBytes() -
getMaxOpenFiles
public int getMaxOpenFiles() -
getTargetFileSizeInBytes
public int getTargetFileSizeInBytes() -
getMaxFileOpeningThreads
public int getMaxFileOpeningThreads() -
getDatabaseOpenOperationThrottle
public int getDatabaseOpenOperationThrottle() -
getCappedPrefixExtractorLength
public int getCappedPrefixExtractorLength() -
getWriteQuotaBytesPerSecond
public long getWriteQuotaBytesPerSecond() -
isAutoTunedRateLimiterEnabled
public boolean isAutoTunedRateLimiterEnabled() -
isPutReuseByteBufferEnabled
public boolean isPutReuseByteBufferEnabled() -
isAtomicFlushEnabled
public boolean isAtomicFlushEnabled() -
isUseSeparateRMDCacheEnabled
public boolean isUseSeparateRMDCacheEnabled() -
getBlockBaseFormatVersion
public int getBlockBaseFormatVersion() -
setBlockBaseFormatVersion
public void setBlockBaseFormatVersion(int version) -
setRocksdbOptionsCompressionType
-
getMaxLogFileNum
public int getMaxLogFileNum() -
getMaxLogFileSize
public long getMaxLogFileSize() -
getTransformerValueSchema
-
isBlobFilesEnabled
public boolean isBlobFilesEnabled() -
getMinBlobSizeInBytes
public long getMinBlobSizeInBytes() -
getBlobFileSizeInBytes
public long getBlobFileSizeInBytes() -
getBlobGarbageCollectionAgeCutOff
public double getBlobGarbageCollectionAgeCutOff() -
getBlobGarbageCollectionForceThreshold
public double getBlobGarbageCollectionForceThreshold() -
getBlobFileStartingLevel
public int getBlobFileStartingLevel()
-