public class HashLinkedListMemTableConfig extends MemTableConfig
Note that since this mem-table representation relies on the key prefix, it is required to invoke one of the usePrefixExtractor functions to specify how to extract key prefix given a key. If proper prefix-extractor is not set, then RocksDB will use the default memtable representation (SkipList) instead and post a warning in the LOG.
Modifier and Type | Field and Description |
---|---|
static int |
DEFAUL_THRESHOLD_USE_SKIPLIST |
static long |
DEFAULT_BUCKET_COUNT |
static int |
DEFAULT_BUCKET_ENTRIES_LOG_THRES |
static long |
DEFAULT_HUGE_PAGE_TLB_SIZE |
static boolean |
DEFAULT_IF_LOG_BUCKET_DIST_WHEN_FLUSH |
Constructor and Description |
---|
HashLinkedListMemTableConfig()
HashLinkedListMemTableConfig constructor
|
Modifier and Type | Method and Description |
---|---|
long |
bucketCount()
Returns the number of buckets that will be used in the memtable
created based on this config.
|
int |
bucketEntriesLoggingThreshold()
Returns the maximum number of entries in one bucket before
logging starts.
|
long |
hugePageTlbSize()
Returns the size value of hugePageTlbSize.
|
boolean |
ifLogBucketDistWhenFlush()
Returns information about logging the distribution of
number of entries on flush.
|
protected long |
newMemTableFactoryHandle()
This function should only be called by Options.setMemTableConfig(),
which will create a c++ shared-pointer to the c++ MemTableRepFactory
that associated with the Java MemTableConfig.
|
HashLinkedListMemTableConfig |
setBucketCount(long count)
Set the number of buckets in the fixed-size array used
in the hash linked-list mem-table.
|
HashLinkedListMemTableConfig |
setBucketEntriesLoggingThreshold(int threshold)
If number of entries in one bucket exceeds that setting, log
about it.
|
HashLinkedListMemTableConfig |
setHugePageTlbSize(long size)
Set the size of huge tlb or allocate the hashtable bytes from
malloc if
size <= 0 . |
HashLinkedListMemTableConfig |
setIfLogBucketDistWhenFlush(boolean logDistribution)
If true the distrubition of number of entries will be logged.
|
HashLinkedListMemTableConfig |
setThresholdUseSkiplist(int threshold)
Set maximum number of entries in one bucket.
|
int |
thresholdUseSkiplist()
Returns entries per bucket threshold before LinkedList is
replaced by SkipList usage for that bucket.
|
public static final long DEFAULT_BUCKET_COUNT
public static final long DEFAULT_HUGE_PAGE_TLB_SIZE
public static final int DEFAULT_BUCKET_ENTRIES_LOG_THRES
public static final boolean DEFAULT_IF_LOG_BUCKET_DIST_WHEN_FLUSH
public static final int DEFAUL_THRESHOLD_USE_SKIPLIST
public HashLinkedListMemTableConfig()
public HashLinkedListMemTableConfig setBucketCount(long count)
count
- the number of hash buckets.public long bucketCount()
public HashLinkedListMemTableConfig setHugePageTlbSize(long size)
Set the size of huge tlb or allocate the hashtable bytes from
malloc if size <= 0
.
The user needs to reserve huge pages for it to be allocated,
like: sysctl -w vm.nr_hugepages=20
See linux documentation/vm/hugetlbpage.txt
size
- if set to <= 0
hashtable bytes from mallocpublic long hugePageTlbSize()
public HashLinkedListMemTableConfig setBucketEntriesLoggingThreshold(int threshold)
threshold
- - number of entries in a single bucket before
logging starts.public int bucketEntriesLoggingThreshold()
public HashLinkedListMemTableConfig setIfLogBucketDistWhenFlush(boolean logDistribution)
logDistribution
- - boolean parameter indicating if number
of entry distribution shall be logged.public boolean ifLogBucketDistWhenFlush()
public HashLinkedListMemTableConfig setThresholdUseSkiplist(int threshold)
threshold
- maximum number of entries before SkipList is
used.public int thresholdUseSkiplist()
protected long newMemTableFactoryHandle()
MemTableConfig
newMemTableFactoryHandle
in class MemTableConfig
Options.setMemTableConfig(MemTableConfig)