Quick Comparions of NoSQL Databases

Edited March 1, 2022 by Leon Hwang

Over the past decade, the interest and demand of NoSQL databases have increased dramatically.

Relational databases are known for robustness and consistency, and have been the major players in the DB market for a long time. However, when they handle large-scale data, they suffer from scalability and bad performance. NoSQL is complementary to SQL and it has various formats for storage that can support large volume of different types of data with high velocity.

There are hundreds of different NoSQL databases available today and it is difficult to find the right database for your task. We will compare several popular NoSQL databases.

NoSQL Database Types

NoSQL DBs are not an exception to CAP Theorem which states that a distribute data store is unable to provide all three of consistency, availability, and partition-tolerance at the same time.

CAP Theorem

Characteristics of NoSQL Databases

  • NoSQL databases, in general, can be categorized into key-value, document, and column stores, or graphs based on their storage model, and each offers different solutions.

  • Key-value store DBs are simplest and designed to store data with no schema Column Store DBs are designed to store large volumes of columns.

  • Document base DBs are more complex data and designed to store, manage and extract info in and from document.

  • Graph DBs are based on on graphs that have interconnected components and relations between them .

ParameterColumn-OrientedGraph-BasedKey-ValueDocument-Oriented
StorageColumnsNodes and edgesUnique Key with valueXML, JSON, BSON
ApplicationsSparse dataSocial connectionsIndexingProgramming objects storage
ExamplesBig Table, CassandraNeo4j, InfoGridDynamo, Oracle NoSQLMongoDB, CouchDB
FormatFlexible SchemaDynamic SchemaSchema-lessSchema-less
AdvantagesScalabilityHigh fault toleranceLess query response timeGeneralized storage for objects
FlexibilityAverageHighHighHigh
PerformanceGoodVaryingGoodGood
ScalabilityHighVaryingHighVarying
ComplexityLowHighLowLow
AerospikeCassandraCouchbaseCouchDBHbaseMongoDBVoldemort
CategoryKey-ValueColumn-StoreDocument-StoreDocument-StoreColumn-StoreDocument-StoreKey-Value
CAPAPAP/CPCPAPCPCPAP
ConsistencyConfigurable (several options)Configurable (several options)Eventual ConsistencyEventual ConsistencyConfigurable (strong and eventual consistency)Configurable (several options)Read-Repair (client handles conflicts)
DurabilityNotified written to desired nodesConfigurable (several options)Configurable (several options)Configurable (notified written to at least one disk)Configurable (several options)Configurable (several options)Notified written to desired nodes
QueryingInternal APIInternal API, SQL like (CQL)Internal API (MapReduce)Internal API (MapReduce)Internal APIInternal API, MapReduce, complex query supportInternal API (get, put, delete)
Concurrency ControlRead-committed isolation level (support for optimistic concurrency control)MVCCMVCC (application can select Optimistic or Pessimistic locking)MVCC (application can select Optimistic or Pessimistic locking)Optimistic locking with MVCCMaster-slave with multi-granularity lockingOptimistic locking with MVCC
Partitioning SchemeProprietary (Paxos based)Consistency HashingConsistency HashingConsistency Hashing (third party)Ranged BasedConsistency HashingConsistency Hashing
Native PartitioningYesYesYesNoYesYesYes

Software Quality Attributes

Quality AttributeDescription
AvailabilityPercent of Up-time
ConsistencyTransaction guarantee
DurabilityValidity of data in disk
MaintainabilityEasiness to operate, upgrade, repair, and debug
PerformanceOptimization for read and write
Recovery TimeTime to recover and stabilize from a failure
ReliabilityProbability of no failure
RobustnessAbility to handle errors
ScalabilityAbility to handle growing workloads

The research finds that each system has its strength and weakness and there is no one-size-fits-all solution. This table shows the evaluation of the popular NoSQL databases and their strengths and weaknesses.

AerospikeCassandraCouchbaseCouchDBHBaseMongoDBVoldemort
Availability++++++++--++
Consistency++++++=+++
Durability-++-+++
Maintainability+=++-=-
Read-Performance+-++=-+++
Write-Performance++++-+-++
Recovery Time++--+??++?
Reliability-+-++++?
Robustness++==--=?
Scalability++++++-++-+
Stabilization Time--++??--?

(++: Great, +: Good, =: Average, -: Mediocre, --: Bad, ?: Unknown/N.A.)

References

  1. Bathla, G., Rani, R., & Aggarwal, H. (2018). Comparative study of NoSQL databases for big data storage. International Journal of Engineering & Technology, 7(2.6), 83. https://doi.org/10.14419/ijet.v7i2.6.10072
  2. Lourenço, J. R., Cabral, B., Carreiro, P., Vieira, M., & Bernardino, J. (2015). Choosing the right NoSQL database for the job: a quality attribute evaluation. Journal of Big Data, 2(1). https://doi.org/10.1186/s40537-015-0025-0