4. {Introductions: ‘Cloudant’}
• Distributed Database as a Service
(DBaaS)
• For developers of high-velocity web and
mobile apps
• Venture Funded, YCombinator
• Ends drudgery of SQL and scale-it-
yourself NoSQL
• 13,000+ users
• Founded by big data scientists
• Speaks CouchDB API
Mike Miller, 2013/02/27 4
16. {Example: ‘HotheadGames’}
~100x Scaling in last 9 months
This Database is bigger than many (most?) Hadoop clusters
Mike Miller, 2013/02/27 16
17. How do you scale a database from MB to PB?
How do you add new features that scale?
Mike Miller, 2013/02/27 17
18. What if my application cares about geospatial location?
What if I need to combine FTI/search, SELECT, and geo?
Cloudant: MapReduce + Lucene + Geospatial
Mike Miller, 2013/02/27 18
19. {Sharding: ‘Automatic’}
• Clustering in a ring (a la Dynamo)
PUT http://rnewson.cloudant.com/dbname/blah?w=2
• Any node can handle a request
• O(1) lookup
Load Balancer
• Quorum system (N, R, W)
• Views distributed like
documents
Node 1
24 No
• Distributed Erlang
de A B C D de
No B
2
Z
A
C • Masterless
Y D
X hash(blah) = E E
C N
od
e
D 3
E
N=3 F
W=2
R=2
D
No
de
E
4
F
G
Mike Miller, 2013/02/27 19
25. {Index: ‘TPR*-Tree’}
• Predictive spatio-temporal query retrieves the set of moving objects that will intersect
a query window during a future time interval
http://www.cs.ust.hk/~dimitris/PAPERS/VLDB03-TPR.pdf
Mike Miller, 2013/02/27 25
26. {API: ‘geo’}
Create Secondary Indexes
Query Those indexes
Mike Miller, 2013/02/27 26