I'm creating a simple internal use application by having an intended users list close to 100 people. The applying does lots of reads and incredibly couple of creates. The dataset dimensions are fairly small , we don't want to utilize a RDBMS if at all possible. Actually, the relational needs are fairly small. I'm searching at with a couple NoSQL database and i'm searching for one using the following needs.

  1. An easy, stable implementation which may be utilized easily from Java (i.e includes a Java client).
  2. I must have the ability to operate a test application from the Home windows box even though final deployment is on the Linux box.
  3. Setup from the NoSQL DB ought to be minimal.
  4. I'm not worried about scaling the DB because we be prepared to limit the dataset size and trim old data from time to time.

Any suggestions could be useful. I'm presently thinking about redis + jredis

EDIT: Among my primary motivations with this project can also be to consider the programming model and methods for use of NoSql DBs. I realize I'm able to use flat files, blobs etc.

Certainly OrientDB (http://www.orientechnologies.com):

  • It's 100% designed in Java (requires JRE 1.6 for that client/server version, otherwise JRE 1.5)
  • Elegant Java APIs
  • Really fast. About 50.000 place/sec on common HW
  • Small: under 1Mb for those
  • Support for SQL with extension for links, graphs and objects
  • Native support for Security
  • Run as embedded or perhaps in client/server configuration. Next releases will support clustering and partitioning
  • Apache 2 license: free for just about any use
  • A lot more

I have had positive results with Neo4J. The database is embedded so the quantity of effort needed to find the system running is minimal. Furthermore the customer interface towards the DB is really a pleasure to utilize.

The whole setup is 2 additional jars around the classpath.

If you are searching for an easy stable implementation of the NoSQL DB system, take a look at Apache (they've over ten years of development experience).

Couple of that involves mind:

  • CouchDB
  • Cassandra. Produced by Facebook however under Apache. Twitter, Facebook, Digg, etc. are utilizing Cassandra. It's fully designed in Java and may be utilized via Java using Thrift or Avro.
  • Redis (although Redis does not run flexibly well on Home windows OS). It's possessed by VMWare.

A document database has a simple storage model and fundamental query capabilities. MongoDB for instance, appears to possess all you need when it comes to compatibility and it is super easy to setup.

I'd choose from 2 options:

1) Berkeley DB: it is extremely mature and simultaneously quite simple key-value storage. It may be the best option in not just one large problem: you purchased it , by Oracle plus some certification issues can happen now. Read carefully information on certification also it your needs don't break the agreement go by using it.

2) MySql on MyISAM engine with no foreign secrets (i.e. several independent not stabilized tables). You will employ it simply like a key-value storage. Look at this answer about using MySql as NoSql storage. Basically were inside your footwear, I'd opt for this method simply because I understand it would show great performance, you will find mature tools for dealing with MySql, lots of people have knowledge about it and if you can certainly make use of all its relational potential should you eventually decide to return to RDBMS solutions.

What you are searching for is SQLite, who cares whether it's a SQL db.