Integrated review comments by ankgup87

- Added tests
- Minor code-style changes
This commit is contained in:
fyrz 2014-10-26 20:47:54 +01:00
parent 2c1bd8846f
commit b011e201fa
8 changed files with 119 additions and 8 deletions

View File

@ -39,11 +39,13 @@ test: java
javac org/rocksdb/test/*.java
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.WriteBatchTest
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.BackupableDBTest
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.BlockBasedTableConfigTest
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.ColumnFamilyTest
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.FilterTest
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.OptionsTest
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.MergeTest
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.ReadOptionsTest

View File

@ -14,6 +14,7 @@ public class BlockBasedTableConfig extends TableFormatConfig {
public BlockBasedTableConfig() {
noBlockCache_ = false;
blockCacheSize_ = 8 * 1024 * 1024;
blockCacheNumShardBits_ = 0;
blockSize_ = 4 * 1024;
blockSizeDeviation_ = 10;
blockRestartInterval_ = 16;
@ -22,6 +23,7 @@ public class BlockBasedTableConfig extends TableFormatConfig {
cacheIndexAndFilterBlocks_ = false;
hashIndexAllowCollision_ = true;
blockCacheCompressedSize_ = 0;
blockCacheCompressedNumShardBits_ = 0;
checksumType_ = ChecksumType.kCRC32c;
indexType_ = IndexType.kBinarySearch;
}

View File

@ -16,11 +16,11 @@ public enum ChecksumType {
/**
* CRC32 Checksum
*/
kCRC32c((byte)1),
kCRC32c((byte) 1),
/**
* XX Hash
*/
kxxHash((byte)2);
kxxHash((byte) 2);
private final byte value_;

View File

@ -22,7 +22,7 @@ public enum EncodingType {
/**
* Always write full keys without any special encoding.
*/
kPlain((byte)0),
kPlain((byte) 0),
/**
* <p>Find opportunity to write the same prefix once for multiple rows.
* In some cases, when a key follows a previous key with the same prefix,
@ -36,7 +36,7 @@ public enum EncodingType {
* bitwise compared to the prefix extractors stored in the file. An error
* will be returned if the two don't match.</p>
*/
kPrefix((byte)1);
kPrefix((byte) 1);
private final byte value_;

View File

@ -18,7 +18,7 @@ public enum IndexType {
* The hash index, if enabled, will do the hash lookup when
* {@code Options.prefix_extractor} is provided.
*/
kHashSearch((byte)1);
kHashSearch((byte) 1);
private final byte value_;

View File

@ -131,11 +131,11 @@ public class PlainTableConfig extends TableFormatConfig {
*
* <p>See linux doc Documentation/vm/hugetlbpage.txt</p>
*
* @param hugePageTlbSize_
* @param hugePageTlbSize
* @return the reference to the current config.
*/
public PlainTableConfig setHugePageTlbSize_(int hugePageTlbSize_) {
this.hugePageTlbSize_ = hugePageTlbSize_;
public PlainTableConfig setHugePageTlbSize(int hugePageTlbSize) {
this.hugePageTlbSize_ = hugePageTlbSize;
return this;
}

View File

@ -0,0 +1,64 @@
// 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.BlockBasedTableConfig;
import org.rocksdb.ChecksumType;
import org.rocksdb.IndexType;
public class BlockBasedTableConfigTest {
public static void main(String[] args) {
BlockBasedTableConfig blockBasedTableConfig =
new BlockBasedTableConfig();
assert(!blockBasedTableConfig.noBlockCache());
blockBasedTableConfig.setNoBlockCache(true);
assert(blockBasedTableConfig.noBlockCache());
assert(blockBasedTableConfig.blockCacheSize() == (8*1024*1024));
blockBasedTableConfig.setBlockCacheSize(8*1024);
assert(blockBasedTableConfig.blockCacheSize() == (8*1024));
assert(blockBasedTableConfig.blockSizeDeviation() == 10);
blockBasedTableConfig.setBlockSizeDeviation(12);
assert(blockBasedTableConfig.blockSizeDeviation() == 12);
assert(blockBasedTableConfig.blockRestartInterval() == 16);
blockBasedTableConfig.setBlockRestartInterval(15);
assert(blockBasedTableConfig.blockRestartInterval() == 15);
assert(blockBasedTableConfig.wholeKeyFiltering());
blockBasedTableConfig.setWholeKeyFiltering(false);
assert(!blockBasedTableConfig.wholeKeyFiltering());
assert(!blockBasedTableConfig.cacheIndexAndFilterBlocks());
blockBasedTableConfig.setCacheIndexAndFilterBlocks(true);
assert(blockBasedTableConfig.cacheIndexAndFilterBlocks());
assert(blockBasedTableConfig.hashIndexAllowCollision());
blockBasedTableConfig.setHashIndexAllowCollision(false);
assert(!blockBasedTableConfig.hashIndexAllowCollision());
assert(blockBasedTableConfig.blockCacheCompressedSize() == 0);
blockBasedTableConfig.setBlockCacheCompressedSize(40);
assert(blockBasedTableConfig.blockCacheCompressedSize() == 40);
assert(blockBasedTableConfig.checksumType().equals(
ChecksumType.kCRC32c));
blockBasedTableConfig.setChecksumType(ChecksumType.kNoChecksum);
assert(blockBasedTableConfig.checksumType().equals(
ChecksumType.kNoChecksum));
blockBasedTableConfig.setChecksumType(ChecksumType.kxxHash);
assert(blockBasedTableConfig.checksumType().equals(
ChecksumType.kxxHash));
assert(blockBasedTableConfig.indexType().equals(
IndexType.kBinarySearch));
blockBasedTableConfig.setIndexType(IndexType.kHashSearch);
assert(blockBasedTableConfig.indexType().equals(
IndexType.kHashSearch));
assert(blockBasedTableConfig.blockCacheCompressedNumShardBits()
== 0);
blockBasedTableConfig.setBlockCacheCompressedNumShardBits(4);
assert(blockBasedTableConfig.blockCacheCompressedNumShardBits()
== 4);
assert(blockBasedTableConfig.cacheNumShardBits() == 0);
blockBasedTableConfig.setCacheNumShardBits(5);
assert(blockBasedTableConfig.cacheNumShardBits() == 5);
System.out.println("BlockBasedTableConfig test passed");
}
}

View File

@ -0,0 +1,43 @@
// 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.EncodingType;
import org.rocksdb.PlainTableConfig;
public class PlainTableConfigTest {
public static void main(String[] args) {
PlainTableConfig plainTableConfig = new PlainTableConfig();
assert(plainTableConfig.keySize() == 0);
plainTableConfig.setKeySize(5);
assert(plainTableConfig.keySize() == 5);
assert(plainTableConfig.bloomBitsPerKey() == 10);
plainTableConfig.setBloomBitsPerKey(11);
assert(plainTableConfig.bloomBitsPerKey() == 11);
assert(plainTableConfig.hashTableRatio() == 0.75);
plainTableConfig.setHashTableRatio(0.95);
assert(plainTableConfig.hashTableRatio() == 0.95);
assert(plainTableConfig.indexSparseness() == 16);
plainTableConfig.setIndexSparseness(18);
assert(plainTableConfig.indexSparseness() == 18);
assert(plainTableConfig.hugePageTlbSize() == 0);
plainTableConfig.setHugePageTlbSize(1);
assert(plainTableConfig.hugePageTlbSize() == 1);
assert(plainTableConfig.encodingType().equals(
EncodingType.kPlain));
plainTableConfig.setEncodingType(EncodingType.kPrefix);
assert(plainTableConfig.encodingType().equals(
EncodingType.kPrefix));
assert(!plainTableConfig.fullScanMode());
plainTableConfig.setFullScanMode(true);
assert(plainTableConfig.fullScanMode());
assert(!plainTableConfig.storeIndexInFile());
plainTableConfig.setStoreIndexInFile(true);
assert(plainTableConfig.storeIndexInFile());
System.out.println("PlainTableConfig test passed");
}
}