A Look at Oracle’s NoSQL Database
Oracle’s key-value database, known simply as “Oracle NoSQL Database” has hit version 2.0. Oracle NoSQL Database is essentially a distributed frontend for Berkeley DB, but it offers much more than that.
Oracle NoSQL Database offers deep integration with Oracle Database. Via Oracle’s External Tables feature, SQL queries can be written against the NoSQL Database and even joined with relational tables.Support for Hadoop, the Apache’s map-reduce technology, is also offered.
On the operations side, “SNMP/JMX support enables integration with Oracle and third party management tools”. (JMX refers to Java Management Extensions, the standard way to expose application status since roughly Java 5.)
Unlike popular databases such as MongoDB, Oracle NoSQL Database offers absolute consistency in addition to eventually consistency. Peter Wayner explains,
Again, this structure stores data with Oracle-grade seriousness. If you don't want the slacker-grade promise of eventual consistency offered by so many other NoSQL stores, Oracle NoSQL will deliver absolute consistency across all of the machines replicating a node. You'll pay for this in write performance, of course, but it's your choice.
This is more than a binary decision, by the way. You can tell Oracle NoSQL to sign off on the write after one, all, or a simple majority of the nodes are finished sending the data to disk. The documentation calls this feature a durability policy.
Some of this flexibility is available to you, the programmer, if you have the time to worry about it. All of the key-value pairs come with a version number, which you can watch yourself if you want to play your own games with replication. This can be helpful if you're trying to goose performance when modifying records.
While generic objects can be stored, those who care about performance may wish to look at Avro Schemas. The documentation claims,
The use of Avro schemas allows serialized values to be stored in a very space-efficient binary format. Each value is stored without any metadata other than a small internal schema identifier, between 1 and 4 bytes in size. One such reference is stored per key-value pair. In this way, the serialized Avro data format is always associated with the schema used to serialize it, with minimal overhead. This association is made transparently to the application, and the internal schema identifier is managed by the bindings supplied by the AvroCatalog class. The application never sees or uses the internal identifier directly.
NoSQL Database Community Edition is offered under the AGPL license. A commercially licensed Enterprise Edition is also available.
Amazon SimpleDB service - Other NO SQL Database service