Closed vijay03 closed 6 years ago
The rocksdb jni wrappers are well written. It'd probably be straight forward to start with that and nuke parts of the api that aren't available in pebbles. https://github.com/facebook/rocksdb/tree/master/java
thanks @noahdesu, this is really useful! We'll take a look at the RocksDB JNI wrappers.
Actually, there are JNI wrappers for LevelDB itself, which might be a better fit for PebblesDB: https://github.com/fusesource/leveldbjni (@jialin-li: check it out?)
Don't know if this is still of interest, but I was recently able to build the leveldbjni code with PebblesDB. I've pushed my changes here: https://github.com/calin-iorgulescu/leveldbjni/tree/pebblesdb . I also changed the build instructions to apply to pebblesdb
.
It seems that the main differences are the lack of Suspend/ResumeCompaction
operations from the flavour of LevelDB that the authors originally used. One test also needed to be commented out due to it expecting a different compaction behavior than that of PebblesDB.
I have yet to fully test it, but the built-in simple tests seem to work.
Hi @calin-iorgulescu, thank you for the note! As it turns out, @abhijith97 has been working on the same thing, and we have the changes merged into our group's fork of leveldbjni: https://github.com/utsaslab/leveldbjni. I believe the changes are exactly the same. Abhijith just done with the work, or I could have saved you some effort.
Ah, missed that. Nevertheless, the YCSB driver implementation is definitely useful. Thanks!
Closed by pull request #15 by @abhijith97. Thanks @abhijith97!
Implement Java JNI Wrapper so that Java applications can access PebblesDB.