NoSQL: birth and main features
Features:
NoSQL comparison with SQL
Key-value databases
Column-oriented databases

Graph databases
Document Databases
CouchDB
MapReduce
Map function:
Reduce function:

CouchDB views
Replication
Master-slave replication

Synchronous/Asynchronous replication
Synchronous
Asynchronous
Key features of distributed databases
CAP Theorem
Also known as Brewer’s theorem, states that it is impossible for distributed systems to provide all three features at the same time.

CA without P
It is equivalent to local database being consistent and available. Distributed systems are not possible with this setup.
Partiotioning means having multiple independent systems that do not need to interact -> Local rather than global consistency.
CP without A
AP without C
Amazon CTO about CAP theorem
why 2 of 3 view is misleading
BASE, and comparison with ACID
ACID focuses on consistency while BASE make explicit both choice and spectrum of availability wanted, that is the main focus of BASE.
Example:
DNS: Eventually consistent.
Conflict resolution on distributed databases
Conflict on documents is detectable by all nodes involved, a local solution is provided.
CouchDB guarantees that each instance that sees the same conflict will come up with the same winning solution, using a deterministic algorithm to pick the winner.
MongoDB
Pros:
Cons:
Hadoop
Big-data everything platform.
Feautres: