NoSQL Database Adoption Trends
UPDATE Aug 08 2013: The following new NoSQL database options were added today, after user request and feedback: GridGain, GigaSpaces, Tibco, and MarkLogic.
UPDATE Jul 25 2013: The following options were added today, after user request: Oracle Coherence, Terracotta BigMemory, Couchbase, and Oracle NoSQL Database.
NoSQL databases have been getting lot of attention over the last few years for their performance, scalability, schema flexibility and analytics capabilities. While relational databases are still good choice for certain use cases - like structured data and applications that require ACID transactions - NoSQL databases are better suited for use cases where:
- The data stored is semi-structured or unstructured in nature
- The applications that access this data require a certain level of performance and scalability
- The applications that access this data are ok with eventual consistency
Non-relational databases typically support the following capabilities:
- Schema flexibility
- Shared nothing architecture
- Sharding as part of the data storage model
- Asynchronous replication
- BASE instead of ACID Transactions
InfoQ would like to learn what NoSQL databases you are currently using or planning on using in your applications.
- MongoDB: MongoDB is an open-source document oriented database.
- Couchbase: NoSQL document database based on JSON model.
- RavenDB: RavenDB is a document-oriented database based on .NET language.
- MarkLogic: MarkLogic NoSQL database is used to store XML-based, document-centric information. It supports schema flexibility.
- Other Document Database
- Neo4j: Neo4j is a property graph database; supports ACID transactions.
- InfiniteGraph: Graph database used to persist and traverse relationships between objects, supports distribute data stores.
- AllegroGraph: AllegroGraph is a graph database that uses memory utilization in combination with disk-based storage for scalability, supports SPARQL, RDFS++, and Prolog reasoning.
- Other Graph Database
Key Value Data Stores
- Riak: Riak is an open source, distributed key value database, supports data replication and fault-tolerance.
- Redis: Redis is an open source key-value store. Supports master-slave replication, transactions, Pub/Sub, Lua scripting, Keys with a limited time-to-live.
- Dynamo: Dynamo is a key-value distributed data store. It is directly implemented as Amazon DynamoDB; used in Amazon S3 product.
- Oracle NoSQL Database: Key-value NoSQL database from Oracle. It supports ACID transactions and JSON.
- Voldemort: Distributed key-value storage system with the data replication and partitioning.
- Aerospike: Aerospike database is a key-value store; supports hybrid memory architecture and data integrity with strong or tunable consistency.
- Other Key Value Data Store
- Cassandra: Cassandra is column database that supports data replication across multiple data centers. Its data model offers column indexes, log-structured updates, support for denormalization, materialized views, and built-in caching.
- HBase: Apache HBase is an open-source, distributed, versioned, column-oriented store modeled after Google's Bigtable. It provides Bigtable-like capabilities on top of Hadoop and HDFS.
- Amazon SimpleDB: Amazon SimpleDB is a non-relational data store that offloads the work of database administration. Developers store and query data items using web services requests.
- Apache Accumulo: Apache Accumulo sorted, distributed key/value data store created based on Google's BigTable design and is built on top of Apache Hadoop, Zookeeper, and Thrift technologies.
- Hypertable: Hypertable is an open source, scalable database, also modeled after Bigtable; supports sharding.
- Azure Tables: Windows Azure Table Storage Service offers NoSQL capabilities for applications that require storage of large amounts of unstructured data. Tables can auto-scale to store up to several terabytes of data. They are accessible via REST and managed APIs.
- Other Columnar Database
In-Memory Data Grids
- Hazelcast: Hazelcast CE is an open source data distribution platform. It allows the developers to share and partition the data across the database cluster.
- Oracle Coherence: Oracle's in-memory data grid solution that provides fast access to frequently used data. Coherence supports event capabilities and dynamic partitioning of data.
- Terracotta BigMemory: Distributed in-memory management solution from Terracotta. The product includes an Ehcache interface, Terracotta Management Console and BigMemory-Hadoop Connector (early access).
- GemFire: VMware vFabric GemFire is a distributed data management platform and provides elastic in-memory data management, replication, partitioning, data-aware routing, and continuous querying.
- Infinispan: Infinispan is a Java based open source key/value NoSQL datastore and distributed data grid platform. It supports transactions and peer-to-peer as well as client/server architecture.
- GridGain: Distributed, object-based, in-memory, SQL+NoSQL key-value database. Supports ACID transactions.
- GigaSpaces: GigaSpaces in-memory data grid (the Space) serves as the system of record for the applications and supports a variety of caching scenarios.
- Tibco: ActiveSpaces product from Tibco provides an infrastructure to create virtual data caches from the aggregate memory of participating nodes in the cluster and to scale as nodes join and leave.
- Other In-Memory Data Grid
"Oracle Coherence is one of the most well-known IMDGs in the market and is likely to be the most widely deployed IMDG."
Cameron Purdy | Oracle
BTW I picked on InfiniteGraph
SDBExplorer - Tool for Amazon SimpleDB
SDBExplorer has been design for fast and parallel operations. You can experience fast, multiple and parallel operations using SDB Explorer.
Thanks for the feedback!
You forgot to include TIBCO's datagrid
Hard to ignore something with so many Enterprise refeneces www.marklogic.com/customer-type/testimonials/
It blows away most of the DB's listed here in terms of features, performance and scalability.
Azure Table Storage on Columnar?
M Sheik Uduman Ali