Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between Cassandra and CouchDB?

I'm looking at both projects and I can't really see the difference

from Cassandra Site:

Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store...Cassandra is eventually consistent. Like BigTable, Cassandra provides a ColumnFamily-based data model richer than typical key/value systems.

from CouchDB Site:

Apache CouchDB is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API.

That said, I see the specific differences between each project as: access methods, written languages, etc. but to put AN EXAMPLE, when you talk about SOLR or Sphinx you know both are indexers with big differences but at the end are indexers.

Can I say here that Cassandra and CouchDB are non-relational databases that in some cases one can replace the other?

like image 728
Gabriel Sosa Avatar asked Jul 09 '09 15:07

Gabriel Sosa


People also ask

What is CouchDB used for?

CouchDB is an open source NoSQL database based on common standards to facilitate Web accessibility and compatibility with a variety of devices. NoSQL databases are useful for very large sets of distributed data, especially for the large amounts of non-uniform data in various formats that is characteristic of big data.

What is couchbase Cassandra?

Cassandra is designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure. 2. Couchbase : Couchbase Server is an open-source, distributed multi-model NoSQL document-oriented database software package that is optimized for interactive applications.

What are the differences between CouchDB and couchbase?

CouchDB is an Apache open source project written in the Erlang language and is free for the user to download. Couchbase is also open source, but it has enterprise, community and developer editions as a portfolio of components. You can download the community edition.


2 Answers

CouchDB is a document store. You put documents (JSON objects) in it and define views (indexes) over them. The objects can be arbitrarily complex with potentially deep structure. Further, they are not constrained to following some consistent schema.

Cassandra is a ragged-table key-value store. It just stores rows, each of which has a set of named columns grouped in to families with values. It sounds quite close to BigTable; BigTable doesn't require each row to have the same structure (unlike an SQL database). The values may have some structure, but this kind of store doesn't know anything about that -- they're just strings/byte sequences.

Yes, they are both non-relational databases, and there is probably a fair amount of overlap in their applicability, but they do have distinctly different data organization models. Each can probably be forced into emulating the other, but each model will map best to a different set of problems.

like image 160
Michael Ekstrand Avatar answered Sep 21 '22 05:09

Michael Ekstrand


CouchDB has a feature present in very few open source database technologies: offline replication. CouchDB is designed so that applications can be run at the edge of the network. These applications are available even when internet connectivity fails.

Offline replication can also be leveraged to build large clusters, but CouchDB is designed to be robust and simple whether it is running on a single server, a datacenter, or even a smartphone.

like image 30
Chris Anderson Avatar answered Sep 23 '22 05:09

Chris Anderson