CouchConf-NYC-Intro-to-document-databases

697 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
697
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • CouchConf-NYC-Intro-to-document-databases

    1. 1. Introduc)on
to
Document DatabasesAlan
McKean @alanmckean
    2. 2. SETTING
THE
STAGE 2
    3. 3. IDS IMS (IBM) “A Relational Model of Ingres Charles Bachman (GE) Vern Watts Data for Michael Stonebraker MUMPS, Large Shared (Berkeley) Pick (TRW) Data Banks” E.F. Codd (IBM) 1850 1945 1957 1958 1962 1965 1966 1968 1969 1970 1972 1973Atlantic Cable ARPACyrus W. Field (USA) IMP ARPANET "As We May Think" oNLine System (NLS) (UCLA-Stanford) Vannevar Bush Sputnik Doug Engelbart (USSR)
    4. 4. IDS IMS (IBM) “A Relational Model of Ingres Charles Bachman (GE) Vern Watts Data for Michael Stonebraker MUMPS, Large Shared (Berkeley) seminal
events
in
internet
history Pick (TRW) Data Banks” E.F. Codd (IBM) 1850 1945 1957 1958 1962 1965 1966 1968 1969 1970 1972 1973Atlantic Cable ARPACyrus W. Field (USA) IMP ARPANET "As We May Think" oNLine System (NLS) (UCLA-Stanford) Vannevar Bush Sputnik Doug Engelbart (USSR)
    5. 5. IDS IMS (IBM) “A Relational Model of Ingres Charles Bachman (GE) Vern Watts Data for Michael Stonebraker MUMPS, Large Shared (Berkeley) hypertext/hypermedia/web seminal
events
in
internet
history Pick (TRW) Data Banks” E.F. Codd (IBM) 1850 1945 1957 1958 1962 1965 1966 1968 1969 1970 1972 1973Atlantic Cable ARPACyrus W. Field (USA) IMP ARPANET "As We May Think" oNLine System (NLS) (UCLA-Stanford) Vannevar Bush Sputnik Doug Engelbart (USSR)
    6. 6. IDS IMS (IBM) “A Relational Model of Ingres Charles Bachman (GE) Vern Watts Data for Michael Stonebraker MUMPS, Large Shared (Berkeley) hypertext/hypermedia/web seminal
events
in
internet
history Banks” Data beginnings
of
the
internet Pick (TRW) E.F. Codd (IBM) 1850 1945 1957 1958 1962 1965 1966 1968 1969 1970 1972 1973Atlantic Cable ARPACyrus W. Field (USA) IMP ARPANET "As We May Think" oNLine System (NLS) (UCLA-Stanford) Vannevar Bush Sputnik Doug Engelbart (USSR)
    7. 7. IDS IMS (IBM) “A Relational Model of Ingres Charles Bachman (GE) Vern Watts Data for Michael Stonebraker MUMPS, Large Shared (Berkeley) Pick (TRW) Data Banks” E.F. Codd (IBM) 1850 1945 1957 1958 1962 1965 1966 1968 1969 1970 1972 1973Atlantic Cable ARPACyrus W. Field (USA) IMP ARPANET "As We May Think" oNLine System (NLS) (UCLA-Stanford) Vannevar Bush Sputnik Doug Engelbart (USSR)
    8. 8. IDS IMS (IBM) “A Relational Model of Ingres Charles Bachman (GE) Vern Watts Data for Michael Stonebraker MUMPS, Large Shared (Berkeley) Pick (TRW) Data Banks” E.F. Codd (IBM) 1850 1945 1957 1958 1962 1965 1966 1968 1969 1970 1972 1973Atlantic Cable ARPA seminal
events
in
internet
history hierarchical/network
databasesCyrus W. Field (USA) IMP ARPANET "As We May Think" oNLine System (NLS) (UCLA-Stanford) Vannevar Bush Sputnik Doug Engelbart (USSR)
    9. 9. IDS IMS (IBM) “A Relational Model of Ingres Charles Bachman (GE) Vern Watts Data for Michael Stonebraker MUMPS, Large Shared (Berkeley) Pick (TRW) Data Banks” E.F. Codd (IBM) 1850 1945 1957 1958 1962 1965 1966 1968 1969 1970 1972 1973Atlantic Cable ARPA rela:onal
databasesCyrus W. Field (USA) IMP ARPANET "As We May Think" oNLine System (NLS) (UCLA-Stanford) Vannevar Bush Sputnik Doug Engelbart (USSR)
    10. 10. IDS IMS (IBM) “A Relational Model of Ingres Charles Bachman (GE) Vern Watts Data for Michael Stonebraker MUMPS, Large Shared (Berkeley) Pick (TRW) Data Banks” E.F. Codd (IBM) 1850 1945 1957 1958 1962 1965 1966 1968 1969 1970 1972 1973Atlantic Cable ARPACyrus W. Field (USA) IMP ARPANET "As We May Think" oNLine System (NLS) (UCLA-Stanford) Vannevar Bush Sputnik Doug Engelbart (USSR)
    11. 11. Pre-1960 GemStone/S (GemStone) Cache Versant Intersystems GT.M, Oracle (Versant) (MUMPS) BerkeleyDB (Larry Ellison) many MySQL Metakit MUMPS Lotus Notes (Michael WideniusSystem R other ANSI, (Lotus) and David Axmark) (IBM) ODBMSs DBM1974 1976 1977 1982 1983 1984 1985 1989 1990 1991 1994 1997 DNS line-mode browser Cello (Paul Mockapetris) (Nicola Pellow) (Tom Bruce) TCP/IP WWW Mosaic NeXT (Vint Cerf (Tim Berners-Lee) (Marc Andreeson) and ViolaWWW Bob Kahn) (Pei Wei) Hypercard (Bill Atkinson)
    12. 12. Pre-1960 GemStone/S (GemStone) Cache Versant Intersystems GT.M, Oracle (Versant) (MUMPS) BerkeleyDB (Larry Ellison) many MySQL Metakit MUMPS Lotus Notes (Michael WideniusSystem R other ANSI, (Lotus) and David Axmark) (IBM) hypertext/hypermedia/web beginnings
of
the
internet ODBMSs DBM1974 1976 1977 1982 1983 1984 1985 1989 1990 1991 1994 1997 DNS line-mode browser Cello (Paul Mockapetris) (Nicola Pellow) (Tom Bruce) TCP/IP WWW Mosaic NeXT (Vint Cerf (Tim Berners-Lee) (Marc Andreeson) and ViolaWWW Bob Kahn) (Pei Wei) Hypercard (Bill Atkinson)
    13. 13. Pre-1960 GemStone/S (GemStone) Cache Versant Intersystems GT.M, Oracle (Versant) (MUMPS) BerkeleyDB (Larry Ellison) many MySQL Metakit MUMPS Lotus Notes (Michael WideniusSystem R other ANSI, (Lotus) hypertext/hypermedia/web Axmark) and David (IBM) ODBMSs seminal
events
in
internet
history DBM1974 1976 1977 1982 1983 1984 1985 1989 1990 1991 1994 1997 DNS line-mode browser Cello (Paul Mockapetris) (Nicola Pellow) (Tom Bruce) TCP/IP WWW Mosaic NeXT (Vint Cerf (Tim Berners-Lee) (Marc Andreeson) and ViolaWWW Bob Kahn) (Pei Wei) Hypercard (Bill Atkinson)
    14. 14. Pre-1960 GemStone/S (GemStone) Cache Versant Intersystems GT.M, Oracle (Versant) (MUMPS) BerkeleyDB (Larry Ellison) many MySQL Metakit MUMPS Lotus Notes (Michael WideniusSystem R other ANSI, (Lotus) and David Axmark) (IBM) ODBMSs DBM1974 1976 1977 1982 1983 1984 1985 1989 1990 1991 1994 1997 DNS line-mode browser Cello (Paul Mockapetris) (Nicola Pellow) (Tom Bruce) TCP/IP WWW Mosaic NeXT (Vint Cerf (Tim Berners-Lee) (Marc Andreeson) and ViolaWWW Bob Kahn) (Pei Wei) Hypercard (Bill Atkinson)
    15. 15. Pre-1960 GemStone/S (GemStone) Cache Versant Intersystems GT.M, Oracle (Versant) (MUMPS) BerkeleyDB (Larry Ellison) many MySQL Metakit MUMPS Lotus Notes (Michael WideniusSystem R other ANSI, (Lotus) and David Axmark) (IBM) ODBMSs DBM1974 1976 1977 1982 1983 1984 1985 1989 1990 1991 1994 1997 DNS line-mode browser Cello (Paul Mockapetris) (Nicola Pellow) (Tom Bruce) TCP/IP WWW Mosaic NeXT (Vint Cerf (Tim Berners-Lee) (Marc Andreeson) and ViolaWWW Bob Kahn) (Pei Wei) Hypercard (Bill Atkinson)
    16. 16. Pre-1960 GemStone/S (GemStone) Cache Versant Intersystems GT.M, Oracle (Versant) (MUMPS) BerkeleyDB (Larry Ellison) many MySQL Metakit MUMPS Lotus Notes (Michael WideniusSystem R other ANSI, (Lotus) and David Axmark) (IBM) ODBMSs DBM1974 1976 1977 1982 1983 1984 1985 1989 1990 1991 1994 1997rela:onal
databases seminal
events
in
 DNS line-mode browser Cello (Paul Mockapetris) (Nicola Pellow) (Tom Bruce) TCP/IP WWW Mosaic NeXT (Vint Cerf (Tim Berners-Lee) (Marc Andreeson) and ViolaWWW Bob Kahn) (Pei Wei) Hypercard (Bill Atkinson)
    17. 17. Pre-1960 GemStone/S (GemStone) Cache Versant Intersystems GT.M, Oracle (Versant) (MUMPS) BerkeleyDB (Larry Ellison) many MySQL Metakit MUMPS Lotus Notes (Michael WideniusSystem R other ANSI, (Lotus) and David Axmark) (IBM) ODBMSs DBM1974 1976 1977 1982 1983 1984 1985 1989 1990 1991 1994 1997 DNS seminal
events
in
 MUMPS line-mode browser Cello (Paul Mockapetris) (Nicola Pellow) (Tom Bruce) TCP/IP WWW Mosaic NeXT (Vint Cerf (Tim Berners-Lee) (Marc Andreeson) and ViolaWWW Bob Kahn) (Pei Wei) Hypercard (Bill Atkinson)
    18. 18. Pre-1960 GemStone/S (GemStone) Cache Versant Intersystems GT.M, Oracle (Versant) (MUMPS) BerkeleyDB (Larry Ellison) many MySQL Metakit MUMPS Lotus Notes (Michael WideniusSystem R other ANSI, (Lotus) and David Axmark) (IBM) ODBMSs DBM1974 1976 1977 1982 1983 1984 1985 1989 1990 1991 1994 1997 DNS object
databases line-mode browser Cello (Paul Mockapetris) (Nicola Pellow) (Tom Bruce) TCP/IP WWW Mosaic NeXT (Vint Cerf (Tim Berners-Lee) (Marc Andreeson) and ViolaWWW Bob Kahn) (Pei Wei) Hypercard (Bill Atkinson)
    19. 19. Pre-1960 GemStone/S (GemStone) Cache Versant Intersystems GT.M, Oracle (Versant) (MUMPS) BerkeleyDB (Larry Ellison) many MySQL Metakit MUMPS Lotus Notes (Michael WideniusSystem R other ANSI, (Lotus) and David Axmark) (IBM) ODBMSs DBM1974 1976 1977 1982 1983 1984 1985 1989 1990 1991 1994 1997 DNS object
databases line-mode browser Cello (Paul Mockapetris) (Nicola Pellow) (Tom Bruce) TCP/IP WWW Mosaic NeXT (Vint Cerf (Tim Berners-Lee) (Marc Andreeson) and ViolaWWW Bob Kahn) (Pei Wei) Hypercard (Bill Atkinson)
    20. 20. Pre-1960 GemStone/S (GemStone) Cache Versant Intersystems GT.M, Oracle (Versant) (MUMPS) BerkeleyDB (Larry Ellison) many MySQL Metakit MUMPS Lotus Notes (Michael WideniusSystem R other ANSI, (Lotus) and David Axmark) (IBM) ODBMSs DBM1974 1976 1977 1982 1983 1984 1985 1989 1990 1991 1994 1997 DNS open
source line-mode browser Cello (Paul Mockapetris) (Nicola Pellow) (Tom Bruce) TCP/IP WWW Mosaic NeXT (Vint Cerf (Tim Berners-Lee) (Marc Andreeson) and ViolaWWW Bob Kahn) (Pei Wei) Hypercard (Bill Atkinson)
    21. 21. Pre-1960 GemStone/S (GemStone) Cache Versant Intersystems GT.M, Oracle (Versant) (MUMPS) BerkeleyDB (Larry Ellison) many MySQL Metakit MUMPS Lotus Notes (Michael WideniusSystem R other ANSI, (Lotus) and David Axmark) (IBM) ODBMSs DBM1974 1976 1977 1982 1983 1984 1985 1989 1990 1991 1994 1997 DNS line-mode browser Cello (Paul Mockapetris) (Nicola Pellow) (Tom Bruce) TCP/IP WWW Mosaic NeXT (Vint Cerf (Tim Berners-Lee) (Marc Andreeson) and ViolaWWW Bob Kahn) (Pei Wei) Hypercard (Bill Atkinson)
    22. 22. Terrastore, Project Voldemort, Riak db4o Cassandra Dynomite, JackRabbit, Hbase, Neo4j QDBM Tokyo Cabinet MongoDB VertexDB BigTable Amazon Couchbase Server "NoSQL" Dynamo "NoSQL" memcachedCarlo Rozzi CouchDB (paper) membase Couchbase Mobile 1998 2000 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 iOS and iPhone iPad Kindle FireOpen Source Summit CAP Theorem Steve Jobs Tim OReilly Formally Proven Android CAP Theorem Seth Gilbert, (Andy Rubin) Samsung Galaxy Eric Brewer Nancy Lynch (MIT)
    23. 23. Terrastore, Project Voldemort, Riak db4o Cassandra Dynomite, JackRabbit, Hbase, Neo4j QDBM Tokyo Cabinet MongoDB VertexDB BigTable Amazon Couchbase Server "NoSQL" Dynamo "NoSQL" memcached distributed
compu:ng seminal
events
in
internet
Carlo Rozzi CouchDB (paper) membase Couchbase Mobile 1998 2000 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 iOS and iPhone iPad Kindle FireOpen Source Summit CAP Theorem Steve Jobs Tim OReilly Formally Proven Android CAP Theorem Seth Gilbert, (Andy Rubin) Samsung Galaxy Eric Brewer Nancy Lynch (MIT)
    24. 24. Terrastore, Project Voldemort, Riak db4o Cassandra Dynomite, JackRabbit, Hbase, Neo4j QDBM Tokyo Cabinet MongoDB VertexDB BigTable Amazon Couchbase Server "NoSQL" Dynamo "NoSQL" memcached mobile
devicesmembase mobile
devicesCarlo Rozzi CouchDB (paper) Couchbase Mobile 1998 2000 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 iOS and iPhone iPad Kindle FireOpen Source Summit CAP Theorem Steve Jobs Tim OReilly Formally Proven Android CAP Theorem Seth Gilbert, (Andy Rubin) Samsung Galaxy Eric Brewer Nancy Lynch (MIT)
    25. 25. Terrastore, Project Voldemort, Riak db4o Cassandra Dynomite, JackRabbit, Hbase, Neo4j QDBM Tokyo Cabinet MongoDB VertexDB BigTable Amazon Couchbase Server "NoSQL" Dynamo "NoSQL" memcachedCarlo Rozzi CouchDB (paper) membase Couchbase Mobile 1998 2000 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 iOS and iPhone iPad Kindle FireOpen Source Summit CAP Theorem Steve Jobs Tim OReilly Formally Proven Android CAP Theorem Seth Gilbert, (Andy Rubin) Samsung Galaxy Eric Brewer Nancy Lynch (MIT)
    26. 26. Terrastore, Project Voldemort, Riak db4o Cassandra Dynomite, JackRabbit, Hbase, Neo4j QDBM Tokyo Cabinet MongoDB VertexDB BigTable Amazon Couchbase Server "NoSQL" Dynamo "NoSQL" memcachedCarlo Rozzi CouchDB (paper) membase Couchbase Mobile 1998 2000 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 seminal
events
in
internet
historyiPhone NoSQL
(“Not
Only
SQL”)and iOS iPad Kindle FireOpen Source Summit CAP Theorem Steve Jobs Tim OReilly Formally Proven Android CAP Theorem Seth Gilbert, (Andy Rubin) Samsung Galaxy Eric Brewer Nancy Lynch (MIT)
    27. 27. Terrastore, Project Voldemort, Riak db4o Cassandra Dynomite, JackRabbit, Hbase, Neo4j QDBM Tokyo Cabinet MongoDB VertexDB BigTable Amazon Couchbase Server "NoSQL" Dynamo "NoSQL" memcachedCarlo Rozzi CouchDB (paper) membase Couchbase Mobile 1998 2000 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 seminal
events
in
internet
history Issues
of
Scale iOS and iPhone iPad Kindle FireOpen Source Summit CAP Theorem Steve Jobs Tim OReilly Formally Proven Android CAP Theorem Seth Gilbert, (Andy Rubin) Samsung Galaxy Eric Brewer Nancy Lynch (MIT)
    28. 28. Terrastore, Project Voldemort, Riak db4o Cassandra Dynomite, JackRabbit, Hbase, Neo4j QDBM Tokyo Cabinet MongoDB VertexDB BigTable Amazon Couchbase Server "NoSQL" Dynamo "NoSQL" memcachedCarlo Rozzi CouchDB (paper) membase Couchbase Mobile 1998 2000 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 iOS and iPhone iPad Kindle FireOpen Source Summit CAP Theorem Steve Jobs Tim OReilly Formally Proven Android CAP Theorem Seth Gilbert, (Andy Rubin) Samsung Galaxy Eric Brewer Nancy Lynch (MIT)
    29. 29. 2011 9
    30. 30. 2011The
Web dynamic
user
popula:on
in
the
millions innova:ve
applica:ons
with
changing
requirements 9
    31. 31. 2011The
Web dynamic
user
popula:on
in
the
millions innova:ve
applica:ons
with
changing
requirementsMobile off‐line
applica:ons server
synchroniza:on
and
sharing 9
    32. 32. 2011The
Web dynamic
user
popula:on
in
the
millions innova:ve
applica:ons
with
changing
requirementsMobile off‐line
applica:ons server
synchroniza:on
and
sharingNoSQL distributed
systems availability
or
consistency 9
    33. 33. Logic Scales!
    34. 34. What About Data?
    35. 35. The Relational Database Solution
    36. 36. RDBMS Scales ... at what cost?
    37. 37. ACID
PROPERTIES 15
    38. 38. ACID
PROPERTIESAtomicitydatabase
modifica:ons
are
all
or
nothing 15
    39. 39. ACID
PROPERTIESAtomicity database
modifica:ons
are
all
or
nothingConsistency databases
go
from
one
consistent
state
to
another 15
    40. 40. ACID
PROPERTIESAtomicity database
modifica:ons
are
all
or
nothingConsistency databases
go
from
one
consistent
state
to
anotherIsola:on transac:ons
never
interfere
with
each
other 15
    41. 41. ACID
PROPERTIESAtomicity database
modifica:ons
are
all
or
nothingConsistency databases
go
from
one
consistent
state
to
anotherIsola:on transac:ons
never
interfere
with
each
otherDurability once
a
transac:on
is
commiWed,
it
stays 15
    42. 42. ACID
PROPERTIESAtomicity database
modifica:ons
are
all
or
nothingConsistency databases
go
from
one
consistent
state
to
anotherIsola:on transac:ons
never
interfere
with
each
otherDurability once
a
transac:on
is
commiWed,
it
stays 15
    43. 43. TRANSACTIONS DAN
PRITCHETT,
EBAY 16
    44. 44. TRANSACTIONS DAN
PRITCHETT,
EBAYPayPal
Uses
Transac:ons 16
    45. 45. TRANSACTIONS DAN
PRITCHETT,
EBAYPayPal
Uses
Transac:onseBay
Doesn’t
(for
non‐cri:cal
data) two‐phase
commit
not
pragma:c 16
    46. 46. TRANSACTIONS DAN
PRITCHETT,
EBAYPayPal
Uses
Transac:onseBay
Doesn’t
(for
non‐cri:cal
data) two‐phase
commit
not
pragma:c responsiveness
and
site
availability
would
suffer 16
    47. 47. TRANSACTIONS DAN
PRITCHETT,
EBAYPayPal
Uses
Transac:onseBay
Doesn’t
(for
non‐cri:cal
data) two‐phase
commit
not
pragma:c responsiveness
and
site
availability
would
suffer new
role
for
database
as
a
‘data
store’ 16
    48. 48. TRANSACTIONS DAN
PRITCHETT,
EBAYPayPal
Uses
Transac:onseBay
Doesn’t
(for
non‐cri:cal
data) two‐phase
commit
not
pragma:c responsiveness
and
site
availability
would
suffer new
role
for
database
as
a
‘data
store’ new
problem:
transac:ons
per
waW 16
    49. 49. TRANSACTIONS DAN
PRITCHETT,
EBAYPayPal
Uses
Transac:onseBay
Doesn’t
(for
non‐cri:cal
data) two‐phase
commit
not
pragma:c responsiveness
and
site
availability
would
suffer new
role
for
database
as
a
‘data
store’ new
problem:
transac:ons
per
waWOther
High‐Volume
Sites independently
determine
the
same
strategy 16
    50. 50. CAP
THEOREM 17
    51. 51. CAP
THEOREMConsistency reads
and
writes
happen
correctly 17
    52. 52. CAP
THEOREMConsistency reads
and
writes
happen
correctlyAvailability every
opera:on
returns
a
result 17
    53. 53. CAP
THEOREMConsistency reads
and
writes
happen
correctlyAvailability every
opera:on
returns
a
resultPar::on
Tolerance the
network
allows
lost
and
undeliverable
messages 17
    54. 54. CAP
THEOREMConsistency reads
and
writes
happen
correctlyAvailability PICK
TWO! every
opera:on
returns
a
resultPar::on
Tolerance the
network
allows
lost
and
undeliverable
messages 17
    55. 55. 18
    56. 56. BASEBasically
AvailableB ASoc‐StateSEventually
ConsistentE 18
    57. 57. The NoSQL Solution
    58. 58. The NoSQL Solution
    59. 59. DATABASE
TAXONOMY JAMES
HAMILTON,
AMAZONFeatures‐First Oracle,
SQL
Server,
DB2,
MySQL,
PostgreSQL,
Amazon
RDS 21
    60. 60. DATABASE
TAXONOMY JAMES
HAMILTON,
AMAZONFeatures‐First Oracle,
SQL
Server,
DB2,
MySQL,
PostgreSQL,
Amazon
RDSScale‐First Couchbase
Server,
CouchDB,
Project
Voldemort,
Riak,
Scalaris,
Kai,
 Dynomite,
MemcacheDB,
ThruDB,
Cassandra,
HBase
and
Hypertable 21
    61. 61. DATABASE
TAXONOMY JAMES
HAMILTON,
AMAZONFeatures‐First Oracle,
SQL
Server,
DB2,
MySQL,
PostgreSQL,
Amazon
RDSScale‐First Couchbase
Server,
CouchDB,
Project
Voldemort,
Riak,
Scalaris,
Kai,
 Dynomite,
MemcacheDB,
ThruDB,
Cassandra,
HBase
and
HypertableSimple
Structured
Storage Amazon
SimpleDB,
Berkeley
DB 21
    62. 62. DATABASE
TAXONOMY JAMES
HAMILTON,
AMAZONFeatures‐First Oracle,
SQL
Server,
DB2,
MySQL,
PostgreSQL,
Amazon
RDSScale‐First Couchbase
Server,
CouchDB,
Project
Voldemort,
Riak,
Scalaris,
Kai,
 Dynomite,
MemcacheDB,
ThruDB,
Cassandra,
HBase
and
HypertableSimple
Structured
Storage Amazon
SimpleDB,
Berkeley
DBPurpose‐Op:mized
Stores StreamBase,
Ver:ca,
Aster
Data,
Netezza,
Greenplum,
VoltDB 21
    63. 63. NOSQL
TAXONOMY STEVEN
YEN,
COUCHBASE 22
    64. 64. NOSQL
TAXONOMY STEVEN
YEN,
COUCHBASEkey‐value‐cachekey‐value‐storeeventually‐consistent
key‐value‐storeordered‐key‐value‐storedata‐structures
servertuple‐storeobject
databasedocument
databasewide
columnar
store 22
    65. 65. WHO
WILL
WIN? 23
    66. 66. 
THE
MOST
APPROACHABLE
API
WITH
 ENOUGH
POWER
WILL
WIN 24
    67. 67. NOSQL
TAXONOMYkey‐value‐cachekey‐value‐storeeventually‐consistent
key‐value‐storeordered‐key‐value‐storedata‐structures
servertuple‐storeobject
databasedocument
databasewide
columnar
store 25
    68. 68. WHY
DOCUMENT
DATABASES? 26
    69. 69. DOCUMENT
DATABASE
APIS
ARE
‘APPROACHABLE’ 27
    70. 70. DOCUMENT
DATABASE
APIS
ARE
‘APPROACHABLE’ HTTP GET,
POST,
PUT,
DELETE memcached GET,
SET,
DELETE,
ADD,
REPLACE,
... 27
    71. 71. Everyone
Understands
Documents
    72. 72. Everyone
Understands
Documents
    73. 73. Documents are Flexible
    74. 74. Documents are Flexible
    75. 75. Documents are Flexible
    76. 76. Documents are Flexible
    77. 77. Documents are Flexible
    78. 78. DOCUMENT
DATABASES
HAVE
“ENOUGH
POWER” 30
    79. 79. DOCUMENT
DATABASES
HAVE
“ENOUGH
POWER” fast
reads
from
cache fast
writes
to
persistent
store single‐document
atomic
writes document
conflict
resolu:on replica:on
of
data clustering
and
fault‐tolerance fail‐over
and
rebalancing
on
the
fly rolling
upgrades
and
deployment high
availability par::on
tolerance rapid‐development
tools 30
    80. 80. Document Reads Are Fast
    81. 81. Document Reads Are Fast document caching
    82. 82. Document Reads Are Fast document persistence
    83. 83. Document Writes Are Fast
    84. 84. Document Writes Are Fast write request
    85. 85. Document Writes Are Fast write request write to cache
    86. 86. Document Writes Are Fast write request write to cache document write queue
    87. 87. Document Writes Are Fast write request write to cache asynchronous document write
    88. 88. Document Writes Are Fast A-R A-R 15 14 I-R 8 A-H I-R 7 7 M-R 5 A-C D-F G-H I-L N-R 3 2 2 3 4A B C D F G H I K L M N O Q R new document
    89. 89. Document Writes Are Fast A-R A-R 15 14 new reductions I-R 8 A-H I-R 7 7 M-R 5 A-C D-F G-H I-L N-R 3 2 2 3 4A B C D F G H I K L M N O Q R new document
    90. 90. Document Writes Are Safe A-R A-R 15 14 I-R 8 A-H I-R 7 7 M-R 5 A-C D-F G-H I-L N-R 3 2 2 3 4A B C D F G H I K L M N O Q R
    91. 91. Document Writes Are Safe A-R new root 14 15 new revisions A-H I-R 7 8 7 A-C D-F G-H I-L N-R M-R 3 2 2 3 4 5A B C D F G H I K L M N O Q R
    92. 92. Document Databases Scale Out
    93. 93. Document Databases Replicate A B 37
    94. 94. Document Databases Replicate A B❦ 37
    95. 95. Document Databases Replicate A B❦ ❦ 37
    96. 96. Document Database Queries Are Fast A-R 14 A-H I-R 7 7 A-C D-F G-H I-L M-R 3 2 2 3 5A B C D F G38 H I K L M N O Q R startkey endkey
    97. 97. Document Databases Are Developer Friendly
    98. 98. “THE
ROADS
AND
CROSSROADS
OF
INTERNET
HISTORY”HTTP://WWW.NETVALLEY.COM/INTVAL1.HTML“A
BRIEF
HISTORY
OF
NOSQL”HTTP://BLOG.KNUTHAUGEN.NO/2010/03/A‐BRIEF‐HISTORY‐OF‐NOSQL.HTML“HISTORY
OF
THE
ATLANTIC
CABLE
AND
UNDERSEA
COMMUNICATIONS”HTTP://ATLANTIC‐CABLE.COM/FIELD/INDEX.HTM“A
LITTLE
HISTORY
OF
THE
WORLD
WIDE
WEB”HTTP://WWW.W3.ORG/HISTORY.HTML“DAN
PRITCHETT
ON
ARCHITECTURE
AT
EBAY”HTTP://WWW.INFOQ.COM/INTERVIEWS/DAN‐PRITCHETT‐EBAY‐ARCHITECTURE“NOSQL
IS
A
HORSELESS
CARRIAGE”
BY
STEVEN
YENHTTP://DL.DROPBOX.COM/U/2075876/NOSQL‐STEVE‐YEN.PDF 40

    ×