An experience by a young startup aficionado
"The primary online data store for an application is the worst place to take a risk with new technology."
Adam D' Angelo
(Quora CEO)
"Of three properties of shared-data systems-data Consistency, system Availability and tolerance to network Partitions - only two can be achieved at any given moment in time."
2000 Prof. Eric Brewer, PoDC Conference Keynote
2002 Seth Gilbert and Nancy Lynch, ACM SIGACT News 33(2)
How do I choose the right database?
It's all about Trade-offs
Source: http://blog.nahurst.com/visual-guide-to-nosql-systems
But is it really just about the trade-offs?
Trade-offs and theories are confusing!!!
Allow me to share some
Hands-on experience...
Kuai List Headquarters: The most improvised white-board ever!
Requirement #1:
What do we know already?
Requirement #2:
What is trending?
Source: http://db-engines.com/en/ranking_trend
That was easy!!!
Requirement #3:
What about Complex Queries?
AHA!!! Relationships do matter right?
Requirement #4:
What about Transactions?
Requirement #5:
What about Consistency?
Requirement #6:
How about Scaling?
.
Use Case: Kuai List
Challenge #1: Host in the Cloud
Synchronous replication
Data-center B
Data-center C
Data-center A
Data-center D
If scaling is needed, How about partitioning at the application level.
Layers are very important (MemedCached server and Amazon S3). they can sit on top of a MYSQL database (only in charge of writes)
How far can I go with using Relational Databases like MySQL and PostgreSQL
How far can I go with using Relational Databases like MySQL and PostgreSQL?
Source: http://db-engines.com/en/ranking_definition