Merge branch 'ankgup87-master'

main
Yueh-Hsuan Chiang 10 years ago
commit 4b61a3d67d
  1. 4
      java/RocksDBSample.java
  2. 22
      java/org/rocksdb/CompactionStyle.java
  3. 24
      java/org/rocksdb/Options.java
  4. 1
      java/org/rocksdb/RocksDB.java
  5. 17
      java/org/rocksdb/StatisticsCollector.java
  6. 2
      java/org/rocksdb/test/StatisticsCollectorTest.java
  7. 21
      java/rocksjni/options.cc

@ -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(

@ -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_;
}
}

@ -1372,6 +1372,30 @@ public class Options extends RocksObject {
return this; return this;
} }
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).

@ -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…
Cancel
Save