In order of priority:

  • Load Options APIs to dynamically reload the options without needing a restart. ([#2898]())
  • Merge Operator API (#2282)
  • Compaction Filter API ()
  • Ability to pass in native pointers/memory to reduce the JNI overhead
  • Shared block cache across all column-families and instances. (#3623)
  • Stats (Tickers and histograms) in sync with C++ API. (in-sync as of June 2017, due to and #2209)
  • Implement Statistics.getHistogramString ().
  • Analyze which one of the comparator implementations is performing better either or Comparator
  • Outline a proper way to use Custom-C++-Comparators with RocksJava.
  • Remove everything but one Comparator implementation. Depending on the analysis listed above.
  • Document the performance penalties in related JavaDoc.
  • FindShortestSeparatorand FindShortSuccessor shall only do something if the Java method is implemented. What`s currently not the case.
  • Rework to use both Slice and DirectSlice (see above).

  • Introduce final on variables/members everywhere they are immutable.

  • Implement for Java. For example, the ability to specify the Comparator which implemented in Java.@adamretter

  • Custom merge operator for Java. At the moment it is only possible to use merge operators which are available in C++ but not implementing custom functionality solely in Java. Decision: will not be implemented.

  • Document the performance penalties if log level is too verbose.

  • Port remaining functionality in db.h to RocksJava.

  • Update Statistics/HistogramData to 3.10@fyrz

  • Build isolation. Building Java API should not require building RocksDB. You should be able to use a Java API build with a separate existing RocksDB installation. The Java API native aspect will instead indirectly depend on a shared or static RocksDB lib.

  • Expose optimistic locking@fyrz

  • Look at Java 8 Long#unsigned operations.

  • Consider whether we should add an UnsignedLong, UnsignedInt class types of our own to prevent users from sending invalid DBOptions.

  • Restructure the package layout within the Java part.

  • Consider converting callbacks to lambda expressions