Cassandra, MongoDB, Couchbase: NoSQL Performance Benchmark

nosql comparison

Interessante analisi quella in oggetto, eseguita da Altoros e pubblicata su InfoQ. Ne riporto qualche estratto qui sotto.

Intro.

Cassandra is a distributed columnar key-value database with eventual consistency. It is optimized for write operations and has no central master—data can be written or read to and from any of the nodes in a cluster. Cassandra provides seamless horizontal scaling and has no single point of failure. If a node in the cluster fails, another node steps up to replace it. At the moment, Cassandra is an Apache 2.0 licensed project supported by the Apache Community.

MongoDB is a schema-free, document-oriented, NoSQL database that stores data in the BSON format. A BSON document is essentially a JSON document in the binary format, which allows for easier and faster integration of data in certain types of applications. This database also provides horizontal scalability and has no single point of failure. A MongoDB cluster is different from a Cassandra or Couchbase Server cluster, as it includes an arbiter, a master, and multiple slaves. Since 2009, MongoDB is an open source project with the AGPL license supported by 10gen.

Couchbase is an open source NoSQL document database for interactive Web and mobile applications. Documents in Couchbase Server are stored as JSON. With built-in caching, Couchbase provides low-latency read and write operations with linearly scalable throughput. The architecture has no single point of failure. It is easy to scale-out the cluster and support live cluster topology changes. This means, there is no application downtime when you are upgrading your database, software, or hardware using rolling upgrades. Couchbase, Inc. develops and provides commercial support for the Couchbase open source project that is Apache 2.0 licensed.

Conclusion.

Choosing the right NoSQL database for your application can be complicated because not all NoSQL solutions are the same. Every solution is optimized for a particular type of workload and use case. Therefore each has its own pros and cons.

For instance, though the advantages of MongoDB include ad-hoc querying, increasing cluster size in Mongo involves a lot of manual operations done through the command line. So, it is mandatory that you have a highly skilled system administrator for this database.

Unlike MongoDB, Cassandra is rather flexible when a cluster needs to be resized. However, its extreme flexibility designed to sustain performance in highly distributed environments results in additional limitations. In particular, the database supports no transactions and cannot block separate records.

In its turn, Couchbase provides an admin console with flexible settings for changing cluster size. Each document is hashed to a node in the cluster. Read and write requests for a particular document are routed to the server holding the active copy of the document. This architecture makes Couchbase fully consistent. Additionally, Couchbase comes with an administrative UI that provides the status of the whole cluster as well as an individual cluster node.

Your final decision may be influenced by these as well as many other factors. Still, the most important things you must consider when working with big data are latencies, throughput, availability, horizontal scaling, and ease of development.

Il report completo lo trovate qui.