views:

209

answers:

2

Hi All, I am dealing with a huge dataset consisting of key-value pairs. The queries are always in the form of range queries on the key space (keys are numbers) hence any persistent B-Tree like structure will handle the situation. I would like to use BDB-Java Edition but the product is closed source and my company doesn't want to buy BDB-JE License. I am wondering, would you please share your experience with any non-GPL java based key-value storage system.

Thanks, -A

+1  A: 

Tokyo Cabinet comes to mind as a very fast KV store which is under the LGPL and is embedded like the BDB and supports BTrees. It is c-based but a javaclient is available and I had no trouble installing it.

MongoDB and CouchDB nice , but it runs as a separate server. Again Java support is available.

Peter Tillemans
Thanks for your answers, I should emphasize, we are looking for pure-java implementations (we are shipping a desktop application written totally in java).
Ali
There is also JDBM which is pure java : http://jdbm.sourceforge.net/There is a page with projects using it : http://jdbm.sourceforge.net/JDBM-Powered.html
Peter Tillemans
+2  A: 

There is also OrientDB, which is a document database written in Java and can be embedded to application (no external server) like BDB Java edition. They use Apache 2.0 license.

They also have key/value based variant: OrientKV. I haven't really used Orient myself, just poking around, so I don't know if it supports your use case (range queries on key space). However, it advertises itself as really fast.

Though, it seems Orient DB is not very widely used. I even made a question asking if anybody has any experiences to share.

Juha Syrjälä