[RocksJava] Extend Options with ColumnFamilyOptions implementation ColumnFamilyOptions implementation with tests
[RocksJava] Extended ColumnFamilyTest Summary: Options Refactoring split part 3 Test Plan: make rocksdbjava make jtest Reviewers: yhchiang, ankgup87 Subscribers: dhruba Differential Revision: https://reviews.facebook.net/D28023
This commit is contained in:
parent
9759495229
commit
0345c2156f
@ -77,14 +77,16 @@ test: java
|
|||||||
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.BlockBasedTableConfigTest
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.BlockBasedTableConfigTest
|
||||||
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.DBOptionsTest
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.DBOptionsTest
|
||||||
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.ColumnFamilyTest
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.ColumnFamilyTest
|
||||||
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.ColumnFamilyOptionsTest
|
||||||
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.FilterTest
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.FilterTest
|
||||||
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.FlushTest
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.FlushTest
|
||||||
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.KeyMayExistTest
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.KeyMayExistTest
|
||||||
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.MemTableTest
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.MemTableTest
|
||||||
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.MergeTest
|
||||||
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.MixedOptionsTest
|
||||||
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.OptionsTest
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.OptionsTest
|
||||||
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.PlainTableConfigTest
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.PlainTableConfigTest
|
||||||
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.ReadOnlyTest
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.ReadOnlyTest
|
||||||
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.MergeTest
|
|
||||||
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.ReadOptionsTest
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.ReadOptionsTest
|
||||||
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.RocksIteratorTest
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.RocksIteratorTest
|
||||||
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.SnapshotTest
|
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.SnapshotTest
|
||||||
|
647
java/org/rocksdb/ColumnFamilyOptions.java
Normal file
647
java/org/rocksdb/ColumnFamilyOptions.java
Normal file
@ -0,0 +1,647 @@
|
|||||||
|
// Copyright (c) 2014, Facebook, Inc. All rights reserved.
|
||||||
|
// This source code is licensed under the BSD-style license found in the
|
||||||
|
// LICENSE file in the root directory of this source tree. An additional grant
|
||||||
|
// of patent rights can be found in the PATENTS file in the same directory.
|
||||||
|
|
||||||
|
package org.rocksdb;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ColumnFamilyOptions to control the behavior of a database. It will be used
|
||||||
|
* during the creation of a {@link org.rocksdb.RocksDB} (i.e., RocksDB.open()).
|
||||||
|
*
|
||||||
|
* If {@link #dispose()} function is not called, then it will be GC'd automatically
|
||||||
|
* and native resources will be released as part of the process.
|
||||||
|
*/
|
||||||
|
public class ColumnFamilyOptions extends RocksObject
|
||||||
|
implements ColumnFamilyOptionsInterface {
|
||||||
|
static {
|
||||||
|
RocksDB.loadLibrary();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construct ColumnFamilyOptions.
|
||||||
|
*
|
||||||
|
* This constructor will create (by allocating a block of memory)
|
||||||
|
* an {@code rocksdb::DBOptions} in the c++ side.
|
||||||
|
*/
|
||||||
|
public ColumnFamilyOptions() {
|
||||||
|
super();
|
||||||
|
newColumnFamilyOptions();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions optimizeForPointLookup(
|
||||||
|
long blockCacheSizeMb) {
|
||||||
|
optimizeForPointLookup(nativeHandle_,
|
||||||
|
blockCacheSizeMb);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions optimizeLevelStyleCompaction() {
|
||||||
|
optimizeLevelStyleCompaction(nativeHandle_,
|
||||||
|
DEFAULT_COMPACTION_MEMTABLE_MEMORY_BUDGET);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions optimizeLevelStyleCompaction(
|
||||||
|
long memtableMemoryBudget) {
|
||||||
|
optimizeLevelStyleCompaction(nativeHandle_,
|
||||||
|
memtableMemoryBudget);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions optimizeUniversalStyleCompaction() {
|
||||||
|
optimizeUniversalStyleCompaction(nativeHandle_,
|
||||||
|
DEFAULT_COMPACTION_MEMTABLE_MEMORY_BUDGET);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions optimizeUniversalStyleCompaction(
|
||||||
|
long memtableMemoryBudget) {
|
||||||
|
optimizeUniversalStyleCompaction(nativeHandle_,
|
||||||
|
memtableMemoryBudget);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setComparator(BuiltinComparator builtinComparator) {
|
||||||
|
assert(isInitialized());
|
||||||
|
setComparatorHandle(nativeHandle_, builtinComparator.ordinal());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setComparator(AbstractComparator comparator) {
|
||||||
|
assert (isInitialized());
|
||||||
|
setComparatorHandle(nativeHandle_, comparator.nativeHandle_);
|
||||||
|
comparator_ = comparator;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setMergeOperatorName(String name) {
|
||||||
|
setMergeOperatorName(nativeHandle_, name);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setMergeOperator(MergeOperator mergeOperator) {
|
||||||
|
setMergeOperator(nativeHandle_, mergeOperator.newMergeOperatorHandle());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setWriteBufferSize(long writeBufferSize)
|
||||||
|
throws RocksDBException {
|
||||||
|
assert(isInitialized());
|
||||||
|
setWriteBufferSize(nativeHandle_, writeBufferSize);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long writeBufferSize() {
|
||||||
|
assert(isInitialized());
|
||||||
|
return writeBufferSize(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setMaxWriteBufferNumber(
|
||||||
|
int maxWriteBufferNumber) {
|
||||||
|
assert(isInitialized());
|
||||||
|
setMaxWriteBufferNumber(nativeHandle_, maxWriteBufferNumber);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int maxWriteBufferNumber() {
|
||||||
|
assert(isInitialized());
|
||||||
|
return maxWriteBufferNumber(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setMinWriteBufferNumberToMerge(
|
||||||
|
int minWriteBufferNumberToMerge) {
|
||||||
|
setMinWriteBufferNumberToMerge(nativeHandle_, minWriteBufferNumberToMerge);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int minWriteBufferNumberToMerge() {
|
||||||
|
return minWriteBufferNumberToMerge(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions useFixedLengthPrefixExtractor(int n) {
|
||||||
|
assert(isInitialized());
|
||||||
|
useFixedLengthPrefixExtractor(nativeHandle_, n);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setCompressionType(CompressionType compressionType) {
|
||||||
|
setCompressionType(nativeHandle_, compressionType.getValue());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CompressionType compressionType() {
|
||||||
|
return CompressionType.values()[compressionType(nativeHandle_)];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setNumLevels(int numLevels) {
|
||||||
|
setNumLevels(nativeHandle_, numLevels);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int numLevels() {
|
||||||
|
return numLevels(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setLevelZeroFileNumCompactionTrigger(
|
||||||
|
int numFiles) {
|
||||||
|
setLevelZeroFileNumCompactionTrigger(
|
||||||
|
nativeHandle_, numFiles);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int levelZeroFileNumCompactionTrigger() {
|
||||||
|
return levelZeroFileNumCompactionTrigger(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setLevelZeroSlowdownWritesTrigger(
|
||||||
|
int numFiles) {
|
||||||
|
setLevelZeroSlowdownWritesTrigger(nativeHandle_, numFiles);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int levelZeroSlowdownWritesTrigger() {
|
||||||
|
return levelZeroSlowdownWritesTrigger(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setLevelZeroStopWritesTrigger(int numFiles) {
|
||||||
|
setLevelZeroStopWritesTrigger(nativeHandle_, numFiles);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int levelZeroStopWritesTrigger() {
|
||||||
|
return levelZeroStopWritesTrigger(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setMaxMemCompactionLevel(
|
||||||
|
int maxMemCompactionLevel) {
|
||||||
|
setMaxMemCompactionLevel(nativeHandle_, maxMemCompactionLevel);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int maxMemCompactionLevel() {
|
||||||
|
return maxMemCompactionLevel(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setTargetFileSizeBase(long targetFileSizeBase) {
|
||||||
|
setTargetFileSizeBase(nativeHandle_, targetFileSizeBase);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long targetFileSizeBase() {
|
||||||
|
return targetFileSizeBase(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setTargetFileSizeMultiplier(int multiplier) {
|
||||||
|
setTargetFileSizeMultiplier(nativeHandle_, multiplier);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int targetFileSizeMultiplier() {
|
||||||
|
return targetFileSizeMultiplier(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setMaxBytesForLevelBase(
|
||||||
|
long maxBytesForLevelBase) {
|
||||||
|
setMaxBytesForLevelBase(nativeHandle_, maxBytesForLevelBase);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long maxBytesForLevelBase() {
|
||||||
|
return maxBytesForLevelBase(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setMaxBytesForLevelMultiplier(int multiplier) {
|
||||||
|
setMaxBytesForLevelMultiplier(nativeHandle_, multiplier);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int maxBytesForLevelMultiplier() {
|
||||||
|
return maxBytesForLevelMultiplier(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setExpandedCompactionFactor(int expandedCompactionFactor) {
|
||||||
|
setExpandedCompactionFactor(nativeHandle_, expandedCompactionFactor);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int expandedCompactionFactor() {
|
||||||
|
return expandedCompactionFactor(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setSourceCompactionFactor(int sourceCompactionFactor) {
|
||||||
|
setSourceCompactionFactor(nativeHandle_, sourceCompactionFactor);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int sourceCompactionFactor() {
|
||||||
|
return sourceCompactionFactor(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setMaxGrandparentOverlapFactor(
|
||||||
|
int maxGrandparentOverlapFactor) {
|
||||||
|
setMaxGrandparentOverlapFactor(nativeHandle_, maxGrandparentOverlapFactor);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int maxGrandparentOverlapFactor() {
|
||||||
|
return maxGrandparentOverlapFactor(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setSoftRateLimit(double softRateLimit) {
|
||||||
|
setSoftRateLimit(nativeHandle_, softRateLimit);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double softRateLimit() {
|
||||||
|
return softRateLimit(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setHardRateLimit(double hardRateLimit) {
|
||||||
|
setHardRateLimit(nativeHandle_, hardRateLimit);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double hardRateLimit() {
|
||||||
|
return hardRateLimit(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setRateLimitDelayMaxMilliseconds(
|
||||||
|
int rateLimitDelayMaxMilliseconds) {
|
||||||
|
setRateLimitDelayMaxMilliseconds(
|
||||||
|
nativeHandle_, rateLimitDelayMaxMilliseconds);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int rateLimitDelayMaxMilliseconds() {
|
||||||
|
return rateLimitDelayMaxMilliseconds(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setArenaBlockSize(long arenaBlockSize)
|
||||||
|
throws RocksDBException {
|
||||||
|
setArenaBlockSize(nativeHandle_, arenaBlockSize);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long arenaBlockSize() {
|
||||||
|
return arenaBlockSize(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setDisableAutoCompactions(boolean disableAutoCompactions) {
|
||||||
|
setDisableAutoCompactions(nativeHandle_, disableAutoCompactions);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean disableAutoCompactions() {
|
||||||
|
return disableAutoCompactions(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setPurgeRedundantKvsWhileFlush(
|
||||||
|
boolean purgeRedundantKvsWhileFlush) {
|
||||||
|
setPurgeRedundantKvsWhileFlush(
|
||||||
|
nativeHandle_, purgeRedundantKvsWhileFlush);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean purgeRedundantKvsWhileFlush() {
|
||||||
|
return purgeRedundantKvsWhileFlush(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setCompactionStyle(CompactionStyle compactionStyle) {
|
||||||
|
setCompactionStyle(nativeHandle_, compactionStyle.getValue());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CompactionStyle compactionStyle() {
|
||||||
|
return CompactionStyle.values()[compactionStyle(nativeHandle_)];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setVerifyChecksumsInCompaction(
|
||||||
|
boolean verifyChecksumsInCompaction) {
|
||||||
|
setVerifyChecksumsInCompaction(
|
||||||
|
nativeHandle_, verifyChecksumsInCompaction);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean verifyChecksumsInCompaction() {
|
||||||
|
return verifyChecksumsInCompaction(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setFilterDeletes(boolean filterDeletes) {
|
||||||
|
setFilterDeletes(nativeHandle_, filterDeletes);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean filterDeletes() {
|
||||||
|
return filterDeletes(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setMaxSequentialSkipInIterations(long maxSequentialSkipInIterations) {
|
||||||
|
setMaxSequentialSkipInIterations(nativeHandle_, maxSequentialSkipInIterations);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long maxSequentialSkipInIterations() {
|
||||||
|
return maxSequentialSkipInIterations(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setMemTableConfig(MemTableConfig config)
|
||||||
|
throws RocksDBException {
|
||||||
|
memTableConfig_ = config;
|
||||||
|
setMemTableFactory(nativeHandle_, config.newMemTableFactoryHandle());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String memTableFactoryName() {
|
||||||
|
assert(isInitialized());
|
||||||
|
return memTableFactoryName(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setTableFormatConfig(TableFormatConfig config) {
|
||||||
|
tableFormatConfig_ = config;
|
||||||
|
setTableFactory(nativeHandle_, config.newTableFactoryHandle());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String tableFactoryName() {
|
||||||
|
assert(isInitialized());
|
||||||
|
return tableFactoryName(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setInplaceUpdateSupport(boolean inplaceUpdateSupport) {
|
||||||
|
setInplaceUpdateSupport(nativeHandle_, inplaceUpdateSupport);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean inplaceUpdateSupport() {
|
||||||
|
return inplaceUpdateSupport(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setInplaceUpdateNumLocks(long inplaceUpdateNumLocks)
|
||||||
|
throws RocksDBException {
|
||||||
|
setInplaceUpdateNumLocks(nativeHandle_, inplaceUpdateNumLocks);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long inplaceUpdateNumLocks() {
|
||||||
|
return inplaceUpdateNumLocks(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setMemtablePrefixBloomBits(int memtablePrefixBloomBits) {
|
||||||
|
setMemtablePrefixBloomBits(nativeHandle_, memtablePrefixBloomBits);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int memtablePrefixBloomBits() {
|
||||||
|
return memtablePrefixBloomBits(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setMemtablePrefixBloomProbes(int memtablePrefixBloomProbes) {
|
||||||
|
setMemtablePrefixBloomProbes(nativeHandle_, memtablePrefixBloomProbes);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int memtablePrefixBloomProbes() {
|
||||||
|
return memtablePrefixBloomProbes(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setBloomLocality(int bloomLocality) {
|
||||||
|
setBloomLocality(nativeHandle_, bloomLocality);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int bloomLocality() {
|
||||||
|
return bloomLocality(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setMaxSuccessiveMerges(long maxSuccessiveMerges)
|
||||||
|
throws RocksDBException {
|
||||||
|
setMaxSuccessiveMerges(nativeHandle_, maxSuccessiveMerges);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long maxSuccessiveMerges() {
|
||||||
|
return maxSuccessiveMerges(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ColumnFamilyOptions setMinPartialMergeOperands(int minPartialMergeOperands) {
|
||||||
|
setMinPartialMergeOperands(nativeHandle_, minPartialMergeOperands);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int minPartialMergeOperands() {
|
||||||
|
return minPartialMergeOperands(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Release the memory allocated for the current instance
|
||||||
|
* in the c++ side.
|
||||||
|
*/
|
||||||
|
@Override protected void disposeInternal() {
|
||||||
|
assert(isInitialized());
|
||||||
|
disposeInternal(nativeHandle_);
|
||||||
|
}
|
||||||
|
|
||||||
|
private native void newColumnFamilyOptions();
|
||||||
|
private native void disposeInternal(long handle);
|
||||||
|
|
||||||
|
private native void optimizeForPointLookup(long handle,
|
||||||
|
long blockCacheSizeMb);
|
||||||
|
private native void optimizeLevelStyleCompaction(long handle,
|
||||||
|
long memtableMemoryBudget);
|
||||||
|
private native void optimizeUniversalStyleCompaction(long handle,
|
||||||
|
long memtableMemoryBudget);
|
||||||
|
private native void setComparatorHandle(long handle, int builtinComparator);
|
||||||
|
private native void setComparatorHandle(long optHandle, long comparatorHandle);
|
||||||
|
private native void setMergeOperatorName(
|
||||||
|
long handle, String name);
|
||||||
|
private native void setMergeOperator(
|
||||||
|
long handle, long mergeOperatorHandle);
|
||||||
|
private native void setWriteBufferSize(long handle, long writeBufferSize)
|
||||||
|
throws RocksDBException;
|
||||||
|
private native long writeBufferSize(long handle);
|
||||||
|
private native void setMaxWriteBufferNumber(
|
||||||
|
long handle, int maxWriteBufferNumber);
|
||||||
|
private native int maxWriteBufferNumber(long handle);
|
||||||
|
private native void setMinWriteBufferNumberToMerge(
|
||||||
|
long handle, int minWriteBufferNumberToMerge);
|
||||||
|
private native int minWriteBufferNumberToMerge(long handle);
|
||||||
|
private native void setCompressionType(long handle, byte compressionType);
|
||||||
|
private native byte compressionType(long handle);
|
||||||
|
private native void useFixedLengthPrefixExtractor(
|
||||||
|
long handle, int prefixLength);
|
||||||
|
private native void setNumLevels(
|
||||||
|
long handle, int numLevels);
|
||||||
|
private native int numLevels(long handle);
|
||||||
|
private native void setLevelZeroFileNumCompactionTrigger(
|
||||||
|
long handle, int numFiles);
|
||||||
|
private native int levelZeroFileNumCompactionTrigger(long handle);
|
||||||
|
private native void setLevelZeroSlowdownWritesTrigger(
|
||||||
|
long handle, int numFiles);
|
||||||
|
private native int levelZeroSlowdownWritesTrigger(long handle);
|
||||||
|
private native void setLevelZeroStopWritesTrigger(
|
||||||
|
long handle, int numFiles);
|
||||||
|
private native int levelZeroStopWritesTrigger(long handle);
|
||||||
|
private native void setMaxMemCompactionLevel(
|
||||||
|
long handle, int maxMemCompactionLevel);
|
||||||
|
private native int maxMemCompactionLevel(long handle);
|
||||||
|
private native void setTargetFileSizeBase(
|
||||||
|
long handle, long targetFileSizeBase);
|
||||||
|
private native long targetFileSizeBase(long handle);
|
||||||
|
private native void setTargetFileSizeMultiplier(
|
||||||
|
long handle, int multiplier);
|
||||||
|
private native int targetFileSizeMultiplier(long handle);
|
||||||
|
private native void setMaxBytesForLevelBase(
|
||||||
|
long handle, long maxBytesForLevelBase);
|
||||||
|
private native long maxBytesForLevelBase(long handle);
|
||||||
|
private native void setMaxBytesForLevelMultiplier(
|
||||||
|
long handle, int multiplier);
|
||||||
|
private native int maxBytesForLevelMultiplier(long handle);
|
||||||
|
private native void setExpandedCompactionFactor(
|
||||||
|
long handle, int expandedCompactionFactor);
|
||||||
|
private native int expandedCompactionFactor(long handle);
|
||||||
|
private native void setSourceCompactionFactor(
|
||||||
|
long handle, int sourceCompactionFactor);
|
||||||
|
private native int sourceCompactionFactor(long handle);
|
||||||
|
private native void setMaxGrandparentOverlapFactor(
|
||||||
|
long handle, int maxGrandparentOverlapFactor);
|
||||||
|
private native int maxGrandparentOverlapFactor(long handle);
|
||||||
|
private native void setSoftRateLimit(
|
||||||
|
long handle, double softRateLimit);
|
||||||
|
private native double softRateLimit(long handle);
|
||||||
|
private native void setHardRateLimit(
|
||||||
|
long handle, double hardRateLimit);
|
||||||
|
private native double hardRateLimit(long handle);
|
||||||
|
private native void setRateLimitDelayMaxMilliseconds(
|
||||||
|
long handle, int rateLimitDelayMaxMilliseconds);
|
||||||
|
private native int rateLimitDelayMaxMilliseconds(long handle);
|
||||||
|
private native void setArenaBlockSize(
|
||||||
|
long handle, long arenaBlockSize) throws RocksDBException;
|
||||||
|
private native long arenaBlockSize(long handle);
|
||||||
|
private native void setDisableAutoCompactions(
|
||||||
|
long handle, boolean disableAutoCompactions);
|
||||||
|
private native boolean disableAutoCompactions(long handle);
|
||||||
|
private native void setCompactionStyle(long handle, byte compactionStyle);
|
||||||
|
private native byte compactionStyle(long handle);
|
||||||
|
private native void setPurgeRedundantKvsWhileFlush(
|
||||||
|
long handle, boolean purgeRedundantKvsWhileFlush);
|
||||||
|
private native boolean purgeRedundantKvsWhileFlush(long handle);
|
||||||
|
private native void setVerifyChecksumsInCompaction(
|
||||||
|
long handle, boolean verifyChecksumsInCompaction);
|
||||||
|
private native boolean verifyChecksumsInCompaction(long handle);
|
||||||
|
private native void setFilterDeletes(
|
||||||
|
long handle, boolean filterDeletes);
|
||||||
|
private native boolean filterDeletes(long handle);
|
||||||
|
private native void setMaxSequentialSkipInIterations(
|
||||||
|
long handle, long maxSequentialSkipInIterations);
|
||||||
|
private native long maxSequentialSkipInIterations(long handle);
|
||||||
|
private native void setMemTableFactory(long handle, long factoryHandle);
|
||||||
|
private native String memTableFactoryName(long handle);
|
||||||
|
private native void setTableFactory(long handle, long factoryHandle);
|
||||||
|
private native String tableFactoryName(long handle);
|
||||||
|
private native void setInplaceUpdateSupport(
|
||||||
|
long handle, boolean inplaceUpdateSupport);
|
||||||
|
private native boolean inplaceUpdateSupport(long handle);
|
||||||
|
private native void setInplaceUpdateNumLocks(
|
||||||
|
long handle, long inplaceUpdateNumLocks) throws RocksDBException;
|
||||||
|
private native long inplaceUpdateNumLocks(long handle);
|
||||||
|
private native void setMemtablePrefixBloomBits(
|
||||||
|
long handle, int memtablePrefixBloomBits);
|
||||||
|
private native int memtablePrefixBloomBits(long handle);
|
||||||
|
private native void setMemtablePrefixBloomProbes(
|
||||||
|
long handle, int memtablePrefixBloomProbes);
|
||||||
|
private native int memtablePrefixBloomProbes(long handle);
|
||||||
|
private native void setBloomLocality(
|
||||||
|
long handle, int bloomLocality);
|
||||||
|
private native int bloomLocality(long handle);
|
||||||
|
private native void setMaxSuccessiveMerges(
|
||||||
|
long handle, long maxSuccessiveMerges) throws RocksDBException;
|
||||||
|
private native long maxSuccessiveMerges(long handle);
|
||||||
|
private native void setMinPartialMergeOperands(
|
||||||
|
long handle, int minPartialMergeOperands);
|
||||||
|
private native int minPartialMergeOperands(long handle);
|
||||||
|
|
||||||
|
MemTableConfig memTableConfig_;
|
||||||
|
TableFormatConfig tableFormatConfig_;
|
||||||
|
AbstractComparator comparator_;
|
||||||
|
}
|
@ -29,6 +29,20 @@ public class Options extends RocksObject
|
|||||||
env_ = RocksEnv.getDefault();
|
env_ = RocksEnv.getDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construct options for opening a RocksDB. Reusing database options
|
||||||
|
* and column family options.
|
||||||
|
*
|
||||||
|
* @param dbOptions {@link org.rocksdb.DBOptions} instance
|
||||||
|
* @param columnFamilyOptions {@link org.rocksdb.ColumnFamilyOptions}
|
||||||
|
* instance
|
||||||
|
*/
|
||||||
|
public Options(DBOptions dbOptions, ColumnFamilyOptions columnFamilyOptions) {
|
||||||
|
super();
|
||||||
|
newOptions(dbOptions.nativeHandle_, columnFamilyOptions.nativeHandle_);
|
||||||
|
env_ = RocksEnv.getDefault();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Options setCreateIfMissing(boolean flag) {
|
public Options setCreateIfMissing(boolean flag) {
|
||||||
assert(isInitialized());
|
assert(isInitialized());
|
||||||
|
229
java/org/rocksdb/test/ColumnFamilyOptionsTest.java
Normal file
229
java/org/rocksdb/test/ColumnFamilyOptionsTest.java
Normal file
@ -0,0 +1,229 @@
|
|||||||
|
// Copyright (c) 2014, Facebook, Inc. All rights reserved.
|
||||||
|
// This source code is licensed under the BSD-style license found in the
|
||||||
|
// LICENSE file in the root directory of this source tree. An additional grant
|
||||||
|
// of patent rights can be found in the PATENTS file in the same directory.
|
||||||
|
|
||||||
|
package org.rocksdb.test;
|
||||||
|
|
||||||
|
import org.rocksdb.*;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
public class ColumnFamilyOptionsTest {
|
||||||
|
static {
|
||||||
|
RocksDB.loadLibrary();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void testCFOptions(ColumnFamilyOptionsInterface opt) {
|
||||||
|
Random rand = PlatformRandomHelper.
|
||||||
|
getPlatformSpecificRandomFactory();
|
||||||
|
{ // WriteBufferSize test
|
||||||
|
try {
|
||||||
|
long longValue = rand.nextLong();
|
||||||
|
opt.setWriteBufferSize(longValue);
|
||||||
|
assert(opt.writeBufferSize() == longValue);
|
||||||
|
} catch (RocksDBException e) {
|
||||||
|
assert(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // MaxWriteBufferNumber test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setMaxWriteBufferNumber(intValue);
|
||||||
|
assert(opt.maxWriteBufferNumber() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // MinWriteBufferNumberToMerge test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setMinWriteBufferNumberToMerge(intValue);
|
||||||
|
assert(opt.minWriteBufferNumberToMerge() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // NumLevels test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setNumLevels(intValue);
|
||||||
|
assert(opt.numLevels() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // LevelFileNumCompactionTrigger test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setLevelZeroFileNumCompactionTrigger(intValue);
|
||||||
|
assert(opt.levelZeroFileNumCompactionTrigger() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // LevelSlowdownWritesTrigger test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setLevelZeroSlowdownWritesTrigger(intValue);
|
||||||
|
assert(opt.levelZeroSlowdownWritesTrigger() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // LevelStopWritesTrigger test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setLevelZeroStopWritesTrigger(intValue);
|
||||||
|
assert(opt.levelZeroStopWritesTrigger() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // MaxMemCompactionLevel test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setMaxMemCompactionLevel(intValue);
|
||||||
|
assert(opt.maxMemCompactionLevel() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // TargetFileSizeBase test
|
||||||
|
long longValue = rand.nextLong();
|
||||||
|
opt.setTargetFileSizeBase(longValue);
|
||||||
|
assert(opt.targetFileSizeBase() == longValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // TargetFileSizeMultiplier test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setTargetFileSizeMultiplier(intValue);
|
||||||
|
assert(opt.targetFileSizeMultiplier() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // MaxBytesForLevelBase test
|
||||||
|
long longValue = rand.nextLong();
|
||||||
|
opt.setMaxBytesForLevelBase(longValue);
|
||||||
|
assert(opt.maxBytesForLevelBase() == longValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // MaxBytesForLevelMultiplier test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setMaxBytesForLevelMultiplier(intValue);
|
||||||
|
assert(opt.maxBytesForLevelMultiplier() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // ExpandedCompactionFactor test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setExpandedCompactionFactor(intValue);
|
||||||
|
assert(opt.expandedCompactionFactor() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // SourceCompactionFactor test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setSourceCompactionFactor(intValue);
|
||||||
|
assert(opt.sourceCompactionFactor() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // MaxGrandparentOverlapFactor test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setMaxGrandparentOverlapFactor(intValue);
|
||||||
|
assert(opt.maxGrandparentOverlapFactor() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // SoftRateLimit test
|
||||||
|
double doubleValue = rand.nextDouble();
|
||||||
|
opt.setSoftRateLimit(doubleValue);
|
||||||
|
assert(opt.softRateLimit() == doubleValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // HardRateLimit test
|
||||||
|
double doubleValue = rand.nextDouble();
|
||||||
|
opt.setHardRateLimit(doubleValue);
|
||||||
|
assert(opt.hardRateLimit() == doubleValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // RateLimitDelayMaxMilliseconds test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setRateLimitDelayMaxMilliseconds(intValue);
|
||||||
|
assert(opt.rateLimitDelayMaxMilliseconds() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // ArenaBlockSize test
|
||||||
|
try {
|
||||||
|
long longValue = rand.nextLong();
|
||||||
|
opt.setArenaBlockSize(longValue);
|
||||||
|
assert(opt.arenaBlockSize() == longValue);
|
||||||
|
} catch (RocksDBException e) {
|
||||||
|
assert(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // DisableAutoCompactions test
|
||||||
|
boolean boolValue = rand.nextBoolean();
|
||||||
|
opt.setDisableAutoCompactions(boolValue);
|
||||||
|
assert(opt.disableAutoCompactions() == boolValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // PurgeRedundantKvsWhileFlush test
|
||||||
|
boolean boolValue = rand.nextBoolean();
|
||||||
|
opt.setPurgeRedundantKvsWhileFlush(boolValue);
|
||||||
|
assert(opt.purgeRedundantKvsWhileFlush() == boolValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // VerifyChecksumsInCompaction test
|
||||||
|
boolean boolValue = rand.nextBoolean();
|
||||||
|
opt.setVerifyChecksumsInCompaction(boolValue);
|
||||||
|
assert(opt.verifyChecksumsInCompaction() == boolValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // FilterDeletes test
|
||||||
|
boolean boolValue = rand.nextBoolean();
|
||||||
|
opt.setFilterDeletes(boolValue);
|
||||||
|
assert(opt.filterDeletes() == boolValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // MaxSequentialSkipInIterations test
|
||||||
|
long longValue = rand.nextLong();
|
||||||
|
opt.setMaxSequentialSkipInIterations(longValue);
|
||||||
|
assert(opt.maxSequentialSkipInIterations() == longValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // InplaceUpdateSupport test
|
||||||
|
boolean boolValue = rand.nextBoolean();
|
||||||
|
opt.setInplaceUpdateSupport(boolValue);
|
||||||
|
assert(opt.inplaceUpdateSupport() == boolValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // InplaceUpdateNumLocks test
|
||||||
|
try {
|
||||||
|
long longValue = rand.nextLong();
|
||||||
|
opt.setInplaceUpdateNumLocks(longValue);
|
||||||
|
assert(opt.inplaceUpdateNumLocks() == longValue);
|
||||||
|
} catch (RocksDBException e) {
|
||||||
|
assert(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // MemtablePrefixBloomBits test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setMemtablePrefixBloomBits(intValue);
|
||||||
|
assert(opt.memtablePrefixBloomBits() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // MemtablePrefixBloomProbes test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setMemtablePrefixBloomProbes(intValue);
|
||||||
|
assert(opt.memtablePrefixBloomProbes() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // BloomLocality test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setBloomLocality(intValue);
|
||||||
|
assert(opt.bloomLocality() == intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // MaxSuccessiveMerges test
|
||||||
|
try {
|
||||||
|
long longValue = rand.nextLong();
|
||||||
|
opt.setMaxSuccessiveMerges(longValue);
|
||||||
|
assert(opt.maxSuccessiveMerges() == longValue);
|
||||||
|
} catch (RocksDBException e){
|
||||||
|
assert(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // MinPartialMergeOperands test
|
||||||
|
int intValue = rand.nextInt();
|
||||||
|
opt.setMinPartialMergeOperands(intValue);
|
||||||
|
assert(opt.minPartialMergeOperands() == intValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
ColumnFamilyOptions opt = new ColumnFamilyOptions();
|
||||||
|
testCFOptions(opt);
|
||||||
|
opt.dispose();
|
||||||
|
System.out.println("Passed DBOptionsTest");
|
||||||
|
}
|
||||||
|
}
|
51
java/org/rocksdb/test/MixedOptionsTest.java
Normal file
51
java/org/rocksdb/test/MixedOptionsTest.java
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
// Copyright (c) 2014, Facebook, Inc. All rights reserved.
|
||||||
|
// This source code is licensed under the BSD-style license found in the
|
||||||
|
// LICENSE file in the root directory of this source tree. An additional grant
|
||||||
|
// of patent rights can be found in the PATENTS file in the same directory.
|
||||||
|
|
||||||
|
package org.rocksdb.test;
|
||||||
|
|
||||||
|
import org.rocksdb.*;
|
||||||
|
|
||||||
|
public class MixedOptionsTest {
|
||||||
|
static {
|
||||||
|
RocksDB.loadLibrary();
|
||||||
|
}
|
||||||
|
public static void main(String[] args) {
|
||||||
|
// Set a table factory and check the names
|
||||||
|
ColumnFamilyOptions cfOptions = new ColumnFamilyOptions();
|
||||||
|
cfOptions.setTableFormatConfig(new BlockBasedTableConfig().
|
||||||
|
setFilter(new BloomFilter()));
|
||||||
|
assert(cfOptions.tableFactoryName().equals(
|
||||||
|
"BlockBasedTable"));
|
||||||
|
cfOptions.setTableFormatConfig(new PlainTableConfig());
|
||||||
|
assert(cfOptions.tableFactoryName().equals("PlainTable"));
|
||||||
|
// Initialize a dbOptions object from cf options and
|
||||||
|
// db options
|
||||||
|
DBOptions dbOptions = new DBOptions();
|
||||||
|
Options options = new Options(dbOptions, cfOptions);
|
||||||
|
assert(options.tableFactoryName().equals("PlainTable"));
|
||||||
|
// Free instances
|
||||||
|
options.dispose();
|
||||||
|
options = null;
|
||||||
|
cfOptions.dispose();
|
||||||
|
cfOptions = null;
|
||||||
|
dbOptions.dispose();
|
||||||
|
dbOptions = null;
|
||||||
|
System.gc();
|
||||||
|
System.runFinalization();
|
||||||
|
// Test Optimize for statements
|
||||||
|
cfOptions = new ColumnFamilyOptions();
|
||||||
|
cfOptions.optimizeUniversalStyleCompaction();
|
||||||
|
cfOptions.optimizeLevelStyleCompaction();
|
||||||
|
cfOptions.optimizeForPointLookup(1024);
|
||||||
|
options = new Options();
|
||||||
|
options.optimizeLevelStyleCompaction();
|
||||||
|
options.optimizeLevelStyleCompaction(400);
|
||||||
|
options.optimizeUniversalStyleCompaction();
|
||||||
|
options.optimizeUniversalStyleCompaction(400);
|
||||||
|
options.optimizeForPointLookup(1024);
|
||||||
|
options.prepareForBulkLoad();
|
||||||
|
System.out.println("Mixed options test passed");
|
||||||
|
}
|
||||||
|
}
|
@ -6,10 +6,7 @@
|
|||||||
package org.rocksdb.test;
|
package org.rocksdb.test;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import org.rocksdb.DBOptions;
|
|
||||||
import org.rocksdb.RocksDB;
|
import org.rocksdb.RocksDB;
|
||||||
import org.rocksdb.RocksDBException;
|
|
||||||
import org.rocksdb.Options;
|
import org.rocksdb.Options;
|
||||||
|
|
||||||
public class OptionsTest {
|
public class OptionsTest {
|
||||||
@ -23,208 +20,7 @@ public class OptionsTest {
|
|||||||
getPlatformSpecificRandomFactory();
|
getPlatformSpecificRandomFactory();
|
||||||
|
|
||||||
DBOptionsTest.testDBOptions(opt);
|
DBOptionsTest.testDBOptions(opt);
|
||||||
|
ColumnFamilyOptionsTest.testCFOptions(opt);
|
||||||
{ // WriteBufferSize test
|
|
||||||
try {
|
|
||||||
long longValue = rand.nextLong();
|
|
||||||
opt.setWriteBufferSize(longValue);
|
|
||||||
assert(opt.writeBufferSize() == longValue);
|
|
||||||
} catch (RocksDBException e) {
|
|
||||||
assert(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // MaxWriteBufferNumber test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setMaxWriteBufferNumber(intValue);
|
|
||||||
assert(opt.maxWriteBufferNumber() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // MinWriteBufferNumberToMerge test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setMinWriteBufferNumberToMerge(intValue);
|
|
||||||
assert(opt.minWriteBufferNumberToMerge() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // NumLevels test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setNumLevels(intValue);
|
|
||||||
assert(opt.numLevels() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // LevelFileNumCompactionTrigger test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setLevelZeroFileNumCompactionTrigger(intValue);
|
|
||||||
assert(opt.levelZeroFileNumCompactionTrigger() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // LevelSlowdownWritesTrigger test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setLevelZeroSlowdownWritesTrigger(intValue);
|
|
||||||
assert(opt.levelZeroSlowdownWritesTrigger() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // LevelStopWritesTrigger test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setLevelZeroStopWritesTrigger(intValue);
|
|
||||||
assert(opt.levelZeroStopWritesTrigger() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // MaxMemCompactionLevel test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setMaxMemCompactionLevel(intValue);
|
|
||||||
assert(opt.maxMemCompactionLevel() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // TargetFileSizeBase test
|
|
||||||
long longValue = rand.nextLong();
|
|
||||||
opt.setTargetFileSizeBase(longValue);
|
|
||||||
assert(opt.targetFileSizeBase() == longValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // TargetFileSizeMultiplier test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setTargetFileSizeMultiplier(intValue);
|
|
||||||
assert(opt.targetFileSizeMultiplier() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // MaxBytesForLevelBase test
|
|
||||||
long longValue = rand.nextLong();
|
|
||||||
opt.setMaxBytesForLevelBase(longValue);
|
|
||||||
assert(opt.maxBytesForLevelBase() == longValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // MaxBytesForLevelMultiplier test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setMaxBytesForLevelMultiplier(intValue);
|
|
||||||
assert(opt.maxBytesForLevelMultiplier() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // ExpandedCompactionFactor test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setExpandedCompactionFactor(intValue);
|
|
||||||
assert(opt.expandedCompactionFactor() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // SourceCompactionFactor test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setSourceCompactionFactor(intValue);
|
|
||||||
assert(opt.sourceCompactionFactor() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // MaxGrandparentOverlapFactor test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setMaxGrandparentOverlapFactor(intValue);
|
|
||||||
assert(opt.maxGrandparentOverlapFactor() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // SoftRateLimit test
|
|
||||||
double doubleValue = rand.nextDouble();
|
|
||||||
opt.setSoftRateLimit(doubleValue);
|
|
||||||
assert(opt.softRateLimit() == doubleValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // HardRateLimit test
|
|
||||||
double doubleValue = rand.nextDouble();
|
|
||||||
opt.setHardRateLimit(doubleValue);
|
|
||||||
assert(opt.hardRateLimit() == doubleValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // RateLimitDelayMaxMilliseconds test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setRateLimitDelayMaxMilliseconds(intValue);
|
|
||||||
assert(opt.rateLimitDelayMaxMilliseconds() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // ArenaBlockSize test
|
|
||||||
try {
|
|
||||||
long longValue = rand.nextLong();
|
|
||||||
opt.setArenaBlockSize(longValue);
|
|
||||||
assert(opt.arenaBlockSize() == longValue);
|
|
||||||
} catch (RocksDBException e) {
|
|
||||||
assert(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // DisableAutoCompactions test
|
|
||||||
boolean boolValue = rand.nextBoolean();
|
|
||||||
opt.setDisableAutoCompactions(boolValue);
|
|
||||||
assert(opt.disableAutoCompactions() == boolValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // PurgeRedundantKvsWhileFlush test
|
|
||||||
boolean boolValue = rand.nextBoolean();
|
|
||||||
opt.setPurgeRedundantKvsWhileFlush(boolValue);
|
|
||||||
assert(opt.purgeRedundantKvsWhileFlush() == boolValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // VerifyChecksumsInCompaction test
|
|
||||||
boolean boolValue = rand.nextBoolean();
|
|
||||||
opt.setVerifyChecksumsInCompaction(boolValue);
|
|
||||||
assert(opt.verifyChecksumsInCompaction() == boolValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // FilterDeletes test
|
|
||||||
boolean boolValue = rand.nextBoolean();
|
|
||||||
opt.setFilterDeletes(boolValue);
|
|
||||||
assert(opt.filterDeletes() == boolValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // MaxSequentialSkipInIterations test
|
|
||||||
long longValue = rand.nextLong();
|
|
||||||
opt.setMaxSequentialSkipInIterations(longValue);
|
|
||||||
assert(opt.maxSequentialSkipInIterations() == longValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // InplaceUpdateSupport test
|
|
||||||
boolean boolValue = rand.nextBoolean();
|
|
||||||
opt.setInplaceUpdateSupport(boolValue);
|
|
||||||
assert(opt.inplaceUpdateSupport() == boolValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // InplaceUpdateNumLocks test
|
|
||||||
try {
|
|
||||||
long longValue = rand.nextLong();
|
|
||||||
opt.setInplaceUpdateNumLocks(longValue);
|
|
||||||
assert(opt.inplaceUpdateNumLocks() == longValue);
|
|
||||||
} catch (RocksDBException e) {
|
|
||||||
assert(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // MemtablePrefixBloomBits test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setMemtablePrefixBloomBits(intValue);
|
|
||||||
assert(opt.memtablePrefixBloomBits() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // MemtablePrefixBloomProbes test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setMemtablePrefixBloomProbes(intValue);
|
|
||||||
assert(opt.memtablePrefixBloomProbes() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // BloomLocality test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setBloomLocality(intValue);
|
|
||||||
assert(opt.bloomLocality() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // MaxSuccessiveMerges test
|
|
||||||
try {
|
|
||||||
long longValue = rand.nextLong();
|
|
||||||
opt.setMaxSuccessiveMerges(longValue);
|
|
||||||
assert(opt.maxSuccessiveMerges() == longValue);
|
|
||||||
} catch (RocksDBException e){
|
|
||||||
assert(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // MinPartialMergeOperands test
|
|
||||||
int intValue = rand.nextInt();
|
|
||||||
opt.setMinPartialMergeOperands(intValue);
|
|
||||||
assert(opt.minPartialMergeOperands() == intValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
opt.dispose();
|
opt.dispose();
|
||||||
System.out.println("Passed OptionsTest");
|
System.out.println("Passed OptionsTest");
|
||||||
|
@ -1740,9 +1740,8 @@ void Java_org_rocksdb_Options_prepareForBulkLoad(
|
|||||||
*/
|
*/
|
||||||
void Java_org_rocksdb_ColumnFamilyOptions_newColumnFamilyOptions(
|
void Java_org_rocksdb_ColumnFamilyOptions_newColumnFamilyOptions(
|
||||||
JNIEnv* env, jobject jobj) {
|
JNIEnv* env, jobject jobj) {
|
||||||
// TODO(fyrz) needs to be enabled back when ColumnFamilyOptions are available
|
rocksdb::ColumnFamilyOptions* op = new rocksdb::ColumnFamilyOptions();
|
||||||
// rocksdb::ColumnFamilyOptions* op = new rocksdb::ColumnFamilyOptions();
|
rocksdb::ColumnFamilyOptionsJni::setHandle(env, jobj, op);
|
||||||
// rocksdb::ColumnFamilyOptionsJni::setHandle(env, jobj, op);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user