Open Source NoSQL Databases
Open Source NoSQL Databases
Join the DZone community and get the full member experience.Join For Free
Take 60 minutes to understand the Power of the Actor Model with "Designing Reactive Systems: The Role Of Actors In Distributed Architecture". Brought to you in partnership with Lightbend.
Here are some of the better known open source data stores/models labeled as "NoSQL":
CouchDB - Document Store
- Maps keys to data
- It provides a RESTful JSON API and is written in Erlang
- You can upload functions to index data and then you can call those functions
- Has a very simple REST interface
- Provides an innovative replication strategy - nodes can reconnect, sync, and reconcile differences after being disconnected for long periods of time
- Enables new distributed types of applications and data
MongoDB - Document Store
- Free-form key-value-like data store with good performance
- Powerful, expansive query model
- Usability rivals that of Redis
- Good for complex data storage needs.
- Production-quality sharding capabilities
Neo4j - GraphDB
- Has a restricted, single-threaded model for graph traversal
- Has optional layers to expose Neo4j as an RDF store
- Can handle graphs of several billion nodes, relationships, or properties on a single machine
- Released under a dual license - free for non-commercial use
Apache Hbase - Wide Column Store/Column Families
- Built on top of Hadoop, which has functionality similar to Google's GFS and MapReduce systems
- Hadoop's HDFS provides a mechanism that reliably stores and organizes large amounts of data
- Random access performance is on par with MySQL
- Has a high performance Thrift gateway
- Cascading source and sink modules
Redis - Key Value/Tuple Store
- Provides a rich API and does more operations in memory, using disk only periodically.
- It's extremely fast
- Lets you append a value to the end of a list of items that's already been stored on a key.
- Has atomic operations, making it a best-of-breed tally server.
Memcached - Key Value/Tuple Store
- High-performance, distributed memory object caching
- Free and open source
- Generic and agnostic to the objects/strings it caches
- It's all in-memory data
- Simple yet elegant design enables easy development and deployment
- Language neutral caching scheme.
- Most of the large properties on the web are using it now, except for Microsoft
Project Voldemort - Eventually Consistent Key Value Store
- Used by LinkedIn
- Handles server failure transparently
- Pluggable serialization supports rich keys and values including lists and tuples with named fields
- Supports common serialization frameworks including Protocol Buffers, Thrift, and Java Serialization
- Data items are versioned
- Supports pluggable data placement strategies
- Memory caching and the storage system are combined
Tokyo Cabinet and Tokyo Tyrant - Key Value/Tuple Store
- Supports hashtable mode, b-tree mode, and table mode
- It's fast and straightforward
- Good for small to medium-sized amounts of data that require rapid updating and can be easily modeled in terms of keys and values
Cassandra - Wide Column Store/Column Families
- First developed by Facebook
- SuperColumns can turn a simple key-value architecture into an architecture that handles sorted lists, based on an index specified by the user.
- Can scale from one node to several thousand nodes clustered in different data centers.
- Can be tuned for more consistency or availability
- Smooth node replacement if one goes down
Some other well known NoSQL-style data stores that are closed source include Google BigTable and Amazon SimpleDB. GigaSpaces is a popular space-based Grid solution that has NoSQL qualities.
Check out this informative post on NoSQL patterns.
Opinions expressed by DZone contributors are their own.