Main Part: Store huge datasets in “almost” SQL
Key Features of Cassandra DB:
Querying by key, or key range (secondary indices are also available)
Data can have expiration (set on INSERT)
Writes can be much faster than reads (when reads are disk-bound)
Map/reduce possible with Apache Hadoop
All nodes are similar, as opposed to Hadoop/HBase
Very good and reliable cross-datacenter replication
Distributed counter data type
You can write triggers in Java
Best use: When you need to store data so huge that it doesn’t fit on server, but still want a friendly familiar interface to it.
Examples: Web analytics, to count hits by hour, by browser, by IP, etc. Transaction logging. Data collection from huge sensor arrays.
Regards,
Alok
Main point: Retains some friendly properties of SQL. (Query, index)
Key Features Of Mongo DB:
Master/slave replication (auto failover with replica sets)
Sharding built-in Queries are javascript expressions
Run arbitrary javascript functions server-side
Better update-in-place than CouchDB
Uses memory mapped files for data storage
Performance over features
Journaling (with –journal) is best turned on
On 32bit systems, limited to ~2.5Gb
Text search integrated
GridFS to store big data + metadata (not actually an FS)
Has geospatial indexing
Data center aware
Best used: If you need dynamic queries. If you prefer to define indexes, not map/reduce functions. If you need good performance on a big DB. If you wanted CouchDB, but your data changes too much, filling up disks.
Examples: For most things that you would do with MySQL or PostgreSQL, but having predefined columns really holds you back.
Regards,
Alok