some problems - easier to solved with no:sql • For example: • High scale (reads, write, data size) • Data structures (sorted sets, hashes) • Graph processing Thursday, June 28, 2012
be able to do everything with Relational Databases • Until you reach: • Scaling limits • $$$ limits • Flexibility limits • Performance limits Thursday, June 28, 2012
Slow writes, fast reads Fast reads, very fast writes SQL CQL (more limited) Ad-hoc query - Normalization Denormalization Consistent Eventually consistent Relational Columnar MySQL Cluster (?) Multi-DC, auto-sharding Thursday, June 28, 2012
scale Eventually consistent Fully consistent Peer to peer Master-slave Simple(r) Ops Complex Ops (on top of HDFS) Atomic counters Atomic read, write, modify Thursday, June 28, 2012
document DB somewhat flex schema very flex schema very high scale medium scale - Geo-spatial indexing Limited query (and MapRed) dynamic queries (JS, MapRed) Thursday, June 28, 2012
indexed, counters medium semi-flex eventual HBase very high columns, indexed, counters hard semi-flex strict Mongo high very flex easy flex object trans Redis small data structure operations easy flex value trans DynamoDB very high KV hosted KV eventual MySQL medium SQL easy strict transactional Thursday, June 28, 2012