Merge branch 'ankgup87-master'
This commit is contained in:
commit
4b61a3d67d
@ -45,7 +45,8 @@ public class RocksDBSample {
|
|||||||
.setMaxBackgroundCompactions(10)
|
.setMaxBackgroundCompactions(10)
|
||||||
.setFilter(filter)
|
.setFilter(filter)
|
||||||
.setCacheNumShardBits(6)
|
.setCacheNumShardBits(6)
|
||||||
.setCompressionType(CompressionType.SNAPPY_COMPRESSION);
|
.setCompressionType(CompressionType.SNAPPY_COMPRESSION)
|
||||||
|
.setCompactionStyle(CompactionStyle.UNIVERSAL);
|
||||||
Statistics stats = options.statisticsPtr();
|
Statistics stats = options.statisticsPtr();
|
||||||
|
|
||||||
assert(options.createIfMissing() == true);
|
assert(options.createIfMissing() == true);
|
||||||
@ -56,6 +57,7 @@ public class RocksDBSample {
|
|||||||
assert(options.maxBackgroundCompactions() == 10);
|
assert(options.maxBackgroundCompactions() == 10);
|
||||||
assert(options.cacheNumShardBits() == 6);
|
assert(options.cacheNumShardBits() == 6);
|
||||||
assert(options.compressionType() == CompressionType.SNAPPY_COMPRESSION);
|
assert(options.compressionType() == CompressionType.SNAPPY_COMPRESSION);
|
||||||
|
assert(options.compactionStyle() == CompactionStyle.UNIVERSAL);
|
||||||
|
|
||||||
assert(options.memTableFactoryName().equals("SkipListFactory"));
|
assert(options.memTableFactoryName().equals("SkipListFactory"));
|
||||||
options.setMemTableConfig(
|
options.setMemTableConfig(
|
||||||
|
22
java/org/rocksdb/CompactionStyle.java
Normal file
22
java/org/rocksdb/CompactionStyle.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
// 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;
|
||||||
|
|
||||||
|
public enum CompactionStyle {
|
||||||
|
LEVEL((byte) 0),
|
||||||
|
UNIVERSAL((byte) 1),
|
||||||
|
FIFO((byte) 2);
|
||||||
|
|
||||||
|
private final byte value_;
|
||||||
|
|
||||||
|
private CompactionStyle(byte value) {
|
||||||
|
value_ = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte getValue() {
|
||||||
|
return value_;
|
||||||
|
}
|
||||||
|
}
|
@ -1373,6 +1373,30 @@ public class Options extends RocksObject {
|
|||||||
}
|
}
|
||||||
private native void setCompressionType(long handle, byte compressionType);
|
private native void setCompressionType(long handle, byte compressionType);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compaction style for DB.
|
||||||
|
*
|
||||||
|
* @return Compaction style.
|
||||||
|
*/
|
||||||
|
public CompactionStyle compactionStyle() {
|
||||||
|
return CompactionStyle.values()[compactionStyle(nativeHandle_)];
|
||||||
|
}
|
||||||
|
private native byte compactionStyle(long handle);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set compaction style for DB.
|
||||||
|
*
|
||||||
|
* Default: LEVEL.
|
||||||
|
*
|
||||||
|
* @param compactionStyle Compaction style.
|
||||||
|
* @return the reference to the current option.
|
||||||
|
*/
|
||||||
|
public Options setCompactionStyle(CompactionStyle compactionStyle) {
|
||||||
|
setCompactionStyle(nativeHandle_, compactionStyle.getValue());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
private native void setCompactionStyle(long handle, byte compactionStyle);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If true, place whole keys in the filter (not just prefixes).
|
* If true, place whole keys in the filter (not just prefixes).
|
||||||
* This must generally be true for gets to be efficient.
|
* This must generally be true for gets to be efficient.
|
||||||
|
@ -119,7 +119,6 @@ public class RocksDB extends RocksObject {
|
|||||||
options.numShardBits_, path);
|
options.numShardBits_, path);
|
||||||
|
|
||||||
db.storeOptionsInstance(options);
|
db.storeOptionsInstance(options);
|
||||||
|
|
||||||
return db;
|
return db;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,13 +46,19 @@ public class StatisticsCollector {
|
|||||||
_executorService.submit(collectStatistics());
|
_executorService.submit(collectStatistics());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void shutDown() throws InterruptedException {
|
/**
|
||||||
|
* Shuts down statistics collector.
|
||||||
|
*
|
||||||
|
* @param shutdownTimeout Time in milli-seconds to wait for shutdown before
|
||||||
|
* killing the collection process.
|
||||||
|
*/
|
||||||
|
public void shutDown(int shutdownTimeout) throws InterruptedException {
|
||||||
_isRunning = false;
|
_isRunning = false;
|
||||||
|
|
||||||
_executorService.shutdown();
|
_executorService.shutdownNow();
|
||||||
// Wait for collectStatistics runnable to finish so that disposal of
|
// Wait for collectStatistics runnable to finish so that disposal of
|
||||||
// statistics does not cause any exceptions to be thrown.
|
// statistics does not cause any exceptions to be thrown.
|
||||||
_executorService.awaitTermination(Integer.MAX_VALUE, TimeUnit.SECONDS);
|
_executorService.awaitTermination(shutdownTimeout, TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Runnable collectStatistics() {
|
private Runnable collectStatistics() {
|
||||||
@ -62,6 +68,9 @@ public class StatisticsCollector {
|
|||||||
public void run() {
|
public void run() {
|
||||||
while (_isRunning) {
|
while (_isRunning) {
|
||||||
try {
|
try {
|
||||||
|
if(Thread.currentThread().isInterrupted()) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
for(StatsCollectorInput statsCollectorInput :
|
for(StatsCollectorInput statsCollectorInput :
|
||||||
_statsCollectorInputList) {
|
_statsCollectorInputList) {
|
||||||
Statistics statistics = statsCollectorInput.getStatistics();
|
Statistics statistics = statsCollectorInput.getStatistics();
|
||||||
@ -86,7 +95,7 @@ public class StatisticsCollector {
|
|||||||
}
|
}
|
||||||
catch (InterruptedException e) {
|
catch (InterruptedException e) {
|
||||||
Thread.currentThread().interrupt();
|
Thread.currentThread().interrupt();
|
||||||
throw new RuntimeException("Thread got interrupted!", e);
|
break;
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
throw new RuntimeException("Error while calculating statistics", e);
|
throw new RuntimeException("Error while calculating statistics", e);
|
||||||
|
@ -33,7 +33,7 @@ public class StatisticsCollectorTest {
|
|||||||
assert(callback.tickerCallbackCount > 0);
|
assert(callback.tickerCallbackCount > 0);
|
||||||
assert(callback.histCallbackCount > 0);
|
assert(callback.histCallbackCount > 0);
|
||||||
|
|
||||||
statsCollector.shutDown();
|
statsCollector.shutDown(1000);
|
||||||
|
|
||||||
db.close();
|
db.close();
|
||||||
opt.dispose();
|
opt.dispose();
|
||||||
|
@ -956,6 +956,27 @@ jbyte Java_org_rocksdb_Options_compressionType(
|
|||||||
return reinterpret_cast<rocksdb::Options*>(jhandle)->compression;
|
return reinterpret_cast<rocksdb::Options*>(jhandle)->compression;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: org_rocksdb_Options
|
||||||
|
* Method: setCompactionStyle
|
||||||
|
* Signature: (JB)V
|
||||||
|
*/
|
||||||
|
void Java_org_rocksdb_Options_setCompactionStyle(
|
||||||
|
JNIEnv* env, jobject jobj, jlong jhandle, jbyte compaction_style) {
|
||||||
|
reinterpret_cast<rocksdb::Options*>(jhandle)->compaction_style =
|
||||||
|
static_cast<rocksdb::CompactionStyle>(compaction_style);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: org_rocksdb_Options
|
||||||
|
* Method: compactionStyle
|
||||||
|
* Signature: (J)B
|
||||||
|
*/
|
||||||
|
jbyte Java_org_rocksdb_Options_compactionStyle(
|
||||||
|
JNIEnv* env, jobject jobj, jlong jhandle) {
|
||||||
|
return reinterpret_cast<rocksdb::Options*>(jhandle)->compaction_style;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Class: org_rocksdb_Options
|
* Class: org_rocksdb_Options
|
||||||
* Method: wholeKeyFiltering
|
* Method: wholeKeyFiltering
|
||||||
|
Loading…
Reference in New Issue
Block a user