Who Am I?
• Originally from Buenos Aires, Argentina
• Solutions Architect @ MongoDB based in
Singapore
• Software Engineer, most of my experience
in web environments
• In my toolbox I have Java, Python and
Node.js
Let me tell you a story…
• Beginning of 2011
• Tier-1 hardware manufacturer wanted to
build a social aggregator backend
• Supported platforms: Twitter, Facebook
and blogs (RSS/Atom)
• We were a MySql shop
That moment!
Based on estimations:
- # of users
- dataset size
- write throughput
…we had some doubts
Some facts of our age
• 3M of emails sent per second
• 20 hs of video uploaded to YouTube p/min
• 75 products ordered on Amazon p/sec
• 100K new tweets per minute
Hardware nowadays
HTTP POST https://ec2.amazonaws.com/?Action=StartInstances &InstanceId.1=i-10a64379 &AUTHPARAMS
Key-value stores
• Access only by primary key
• Implementations are mainly in memory
• Insanely fast
• Value is "something" like a BLOB
Document databases
• General purpose data storage
• Dynamic schema / unstructured data
• Flexible query & indexing capabilities
• Consistent writes
• Aggregation capabilities
BigTable
• Multidimensional sorted maps
• Data stored across a ring of nodes (P2P)
• Eventually consistent based on quorum
• Append only storage
• Fast when writing, not so fast when
reading.
Search engines
• Not used as primary storage
• Full-text search capabilities
• Faceted search
• Lightweight integration with REST APIs