Other Hybrid NoSQL Databases

By Adam Fowler

There are a few NoSQL databases that you will likely hear mentioned often — OrientDB and MarkLogic and maybe, ArangoDB. However, there are other hybrid NoSQL databases of interest.

FoundationDB

FoundationDB is an open-source, ACID-compliant key-value store. What’s unique about FoundationDB is that it’s designed to allow developers to efficiently plug in their own data management mechanisms over the key-value store.

FoundationDB’s extensions allow it to act as an efficient document store, a sparse table store, a vector store, and even a graph database. FoundationDB also provides an implementation of the BluePrints property graph API, which allows FoundationDB to be swapped with other property graph implementations that also support the BluePrints API, such as OrientDB and Neo4j. FoundationDB also supports an ANSI SQL query layer that allows any traditional relational database application to use it.

FoundationDB is only a couple of years old. It made waves when it was released because it supported ACID transactions from the get-go, whereas most open-source databases are slow in providing this functionality, which is required by businesses.

However, FoundationDB has some limitations:

  • It doesn’t support transactions lasting more than five seconds.

  • Each transaction can affect only 10MB of stored data.

  • Keys are limited to 10K, and values are limited to 100K.

  • Database only tested to 100TB of raw data.

OpenLink Virtuoso

Virtuoso doesn’t position itself as a NoSQL database, but as a multi-model data server. Coming, like MarkLogic Server, from an XML storage background, it now stores XML, RDF, free text, and relational tables.

Virtuoso supports several different data models in one product:

  • XML document database

  • SQL-compliant relational database (including joins and other common RDBMS functions)

  • RDF triple and quad store

  • Search (including full text and geospatial intelligence)

  • BPEL (Business Process Execution Language) processing engine for data-centric workflow

Virtuoso provides row-level (RDBMS) security, and attribute-based access control (ABAC) for subject-level security in its RDF store.

Version 6 of the commercial version of Virtuoso introduced clustering and high availability, and the current commercial version 7 introduced elastic cluster change support.

Virtuoso is a niche product, but it comes up a lot in the XML database arena. It acts as a virtual database layer on top of many storage engines, so it isn’t a true multi-model database; however, the approach is interesting.