For a desktop product in our company we are looking for a project that is
- Free: Zero license fees, even when uses commercially. So acceptable licenses are: Apache License, BSD, Eclipse License etc. Non-acceptable are GPL (our desktop software cannot be free, we need money :-), and LGPL (license situation in Java-land unclear, might be too close to GPL. Although the motivation behind LGPL is just right).
- Open-Source: We open source many of our work, too, and like to tinker with stuff. Also, code (plus JavaDocs) is a good documentation.
- Embeddable: For a desktop product an embeddable database seems just perfect. When the user shuts down the program, it's stopped. Also, no local socket communication is required, hence we might improve performance. In the future, we might have to port our app to Android or even iOS.
- Java: Our app is currently in Java and we know the environment and ecosystem well.
- NoSQL: We just don't need SQL. We have already a backend written on top of the Google Appengine Datastore. Precisely, we need a database that supports at least
- Key-Value store with Strings up to ca. 500 chars as keys, and
- Range-queries on keys
- Arbitrary byte[] values
- Databases: We want to store data on disk in an ACID way. I.e. we don't want to manage writing to disk, reading from disk, recovering from errors, optimizing file layout, etc.
The resulting research turned out to take much more time than expected (ca. 20 hours). The result is in this epic Google doc: Java free & open source embeddable NoSQL databases.
No comments:
Post a Comment