Cassandra
Cassandra1 is a NoSQL database developed by Apache that focuses on being distributed. Although it is possible to run it as a single instance, one should run it as a cluster to benefit from its advantages. These clusters runs in a masterless manner, where all nodes are equal, and appear as one database system to the client. Data is automatically distributed between the nodes for optimal performance. Behind the scenes, Cassandra is a wide-column store2, an architecture that somewhat resembles traditional (relational) databases. In a wide-column table, however, not all rows have to use the same set of columns.
Comparison
Each of the requirements is scored on a scale from 1 (very poor) to 5 (very good).
Data integrity
Score: 2. Cassandra is not fully ACID-compliant, but does offer transactions with basic guarantees. As Cassandra is non-relational, there are no references between tables, and consistency between them has to be managed by the application itself.
Handling necessary data
Score: 5. Cassandra is built for large datasets and should not have problems handling millions of items, even on a single node.
JavaScript support
Score: 3. There’s a complete driver library3 available. However, support from other libraries with additional features is very limited.
Performance
Score: 3. Benchmarks4 show that Cassandra scores better than MongoDB on some metrics (write operations), and worse on others (read operations).
Query support
Score 3. The Cassandra Query Language (CQL) shares similarities with SQL. However, it is not a relational database, and does not support combining data from multiple tables (joins).
Scalability
Score: 5. Being scalable is Cassandra’s main selling point. Data distribution between nodes happens automatically and is invisible to the application. It is easy to add nodes to improve the capacity of the system.
[Unknown bib ref: benchmark-cassandramongo]