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 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.WriteBatchTest
java -ea -Djava.library.path=.:../ -cp "$(ROCKSDB_JAR):.:./*" org.rocksdb.test.BackupableDBTest 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.ColumnFamilyTest
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.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.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.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.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

View File

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

View File

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

View File

@ -22,7 +22,7 @@ public enum EncodingType {
/** /**
* Always write full keys without any special encoding. * 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. * <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, * 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 * bitwise compared to the prefix extractors stored in the file. An error
* will be returned if the two don't match.</p> * will be returned if the two don't match.</p>
*/ */
kPrefix((byte)1); kPrefix((byte) 1);
private final byte value_; private final byte value_;

View File

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

View File

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