SlideShare a Scribd company logo
The NoSQL Ecosystem



        Adam Marcus
         MIT CSAIL
marcua@csail.mit.edu / @marcua
About Me
     ●
         Social Computing + Database Systems
     ●
         Easily Distracted: Wrote The NoSQL Ecosystem in
         The Architecture of Open Source Applications   1




1
    http://www.aosabook.org/en/nosql.html
History, Compressed




Late 1990s                         Today
History, Compressed




 Buy RAM

Late 1990s                         Today
History, Compressed




 Buy RAM Wrap RDBMSs

Late 1990s                         Today
History, Compressed




 Buy RAM Wrap RDBMSs   NoSQL

Late 1990s                         Today
History, Compressed


                          Not Only SQL




 Buy RAM Wrap RDBMSs   NoSQL

Late 1990s                          Today
History, Compressed




 Buy RAM Wrap RDBMSs   NoSQL   Commercialize

Late 1990s                            Today
History, Compressed




 Buy RAM Wrap RDBMSs   NoSQL   Commercialize

Late 1990s                            Today
The List, So You Don't Yell at Me

                HBase                  CouchDB
                               Neo4j
     Cassandra          Riak            InfoGrid
BerkeleyDB      Voldemort      HyperTable
       Redis
                         MongoDB        Sones
AllegroGraph HyperGraphDB
                                 DEX    FlockDB
             VertexDB
                                    Oracle NoSQL
Tokyo Cabinet       MemcacheDB
The List, So You Don't Yell at Me
      Marcus' Law of Databases:
           HBase             CouchDB
                             Neo4j
     Cassandra        Riak           InfoGrid
       The number of persistence
                      HyperTable
BerkeleyDB doubles every 1.5 years
            Voldemort
    options
       Redis
                       MongoDB       Sones
AllegroGraph HyperGraphDB
                               DEX   FlockDB
           VertexDB
                                 Oracle NoSQL
Tokyo Cabinet    MemcacheDB
The List, So You Don't Yell at Me
      Marcus' Law of Databases:
           HBase             CouchDB
                           Neo4j
     Cassandra      Riak           InfoGrid
       The number of persistence
                      HyperTable
BerkeleyDB doubles every 1.5 years
            Voldemort
    options
        Redis
                     MongoDB       Sones
                  Corollary:
AllegroGraph HyperGraphDB
          I'm sorry I missedDEX FlockDB
                             your
             persistence optionOracle NoSQL
            VertexDB
Tokyo Cabinet    MemcacheDB
interesting properties
  real-world usage
     takeaways
      questions
interesting properties
  real-world usage
     takeaways
      questions
Conventional Wisdom on NoSQL
●
    Key-based data model
●
    Sloppy schema
●
    Single-key transactions
●
    In-app joins
●
    Eventually consistent
Exceptions are More Interesting
●
    Data Model
●
    Query Model
●
    Transactions
●
    Consistency
Data Model
●
    Usually key-based...
    ●
        Column-families
    ●
        Documents
    ●
        Data structures
Data Model
●
    Usually key-based...
    ●
        Column-families
    ●
        Documents
    ●
        Data structures
●
    ...but not always
    ●
        Graph stores
Query Model
●
    Redis: data structure-specific operations
●
    CouchDB, Riak: MapReduce
●
    Cassandra, MongoDB: SQL-like languages, no
    joins or transactions
Query Model
●
    Redis: data structure-specific operations
●
    CouchDB, Riak: MapReduce
●
    Cassandra, MongoDB: SQL-like languages, no
    joins or transactions
●
    Third-party
    ●
        High-level: PigLatin, HiveQL
    ●
        Library: Cascading, Crunch
    ●
        Streaming: Flume, Kafka, S4, Scribe
Transactions
●
    Full ACID for single key
●
    Redis: multi-key single-node transactions
Consistency
●   Strong: Appears that all replicas see all writes
●   Eventual: Replicas may have different, divergent versions
Consistency
●   Strong: Appears that all replicas see all writes
●   Eventual: Replicas may have different, divergent versions

●   Dynamo: strong or eventual (quorum size)
Consistency
  ●   Strong: Appears that all replicas see all writes
  ●   Eventual: Replicas may have different, divergent versions

  ●   Dynamo: strong or eventual (quorum size)


  ●   PNUTs: Timeline consistency
  ●   ...many consistency models!




See: http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
interesting properties
  real-world usage
     takeaways
      questions
NoSQL Use-cases
●
    Cassandra
●
    HBase
●
    MongoDB
Cassandra
●
    BigTable data model: key   column family
●
    Dynamo sharding model: consistent hashing
●
    Eventual or strong consistency
Cassandra at Netflix
  ●
      Transitioned from Oracle
  ●
      Store customer profiles, customer:movie watch
      log, and detailed usage logging
         Note: no multi-record locking (e.g., bank transfer)
      In-datacenter: 3 replicas, per-app consistency
         read/write quorum = 1, ~1ms latency
         read/write quorum = 2, ~3ms latency


“Replicating Datacenter Oracle with Global Apache Cassandra on AWS” by Adrian Cockcroft
http://www.slideshare.net/adrianco/migrating-netflix-from-oracle-to-global-cassandra
Cassandra at Netflix
  ●
      Transitioned from Oracle
  ●
      Store customer profiles, customer:movie watch
      log, and detailed usage logging
      ●
          Note: no multi-record locking (e.g., bank transfer)
      In-datacenter: 3 replicas, per-app consistency
          read/write quorum = 1, ~1ms latency
          read/write quorum = 2, ~3ms latency


“Replicating Datacenter Oracle with Global Apache Cassandra on AWS” by Adrian Cockcroft
http://www.slideshare.net/adrianco/migrating-netflix-from-oracle-to-global-cassandra
Cassandra at Netflix
  ●
      Transitioned from Oracle
  ●
      Store customer profiles, customer:movie watch
      log, and detailed usage logging
      ●
          Note: no multi-record locking (e.g., bank transfer)
  ●
      In-datacenter: 3 replicas, per-app consistency




“Replicating Datacenter Oracle with Global Apache Cassandra on AWS” by Adrian Cockcroft
http://www.slideshare.net/adrianco/migrating-netflix-from-oracle-to-global-cassandra
Cassandra at Netflix (cont'd)
●
    Benefit: async inter-datacenter replication
●
    Benefit: no downtime for schema changes
●
    Benefit: hooks for live backups
HBase
●
    Data model: key       column family
●
    Sharding model: range partitioning
●
    Strong consistency


    Applications
      Logging events/crawls, storing analytics
      Twitter: replicate data from MySQL, Hadoop analytics
      Facebook Messages
HBase
●
    Data model: key         column family
●
    Sharding model: range partitioning
●
    Strong consistency


●
    Applications
    ●
        Logging events/crawls, storing analytics
    ●
        Twitter: replicate data from MySQL, Hadoop analytics
    ●
        Facebook Messages
HBase for Facebook Messages
●
    Cassandra/Dynamo eventual consistency was
    difficult to program against


    Benefit: simple consistency model
    Benefit: flexible data model
    Benefit: simple sharding, load balancing,
    replication
HBase for Facebook Messages
●
    Cassandra/Dynamo eventual consistency was
    difficult to program against


●
    Benefit: simple consistency model
●
    Benefit: flexible data model
●
    Benefit: simple sharding, load balancing,
    replication
MongoDB
●
    Document-based data model
●
    Range-based partitioning
●
    Consistency depends on how you use it
MongoDB: Two use-cases
●
    Archiving at Craigslist
    ●
        2.2B historical posts, semi-structured
    ●
        Relatively large blobs: avg 2KB, max > 4 MB
MongoDB: Two use-cases
●
    Archiving at Craigslist
    ●
        2.2B historical posts, semi-structured
    ●
        Relatively large blobs: avg 2KB, max > 4 MB
●
    Checkins at Foursquare
    ●
        Geospatial indexing
    ●
        Small location-based updates, sharded on user
interesting properties
  real-world usage
     takeaways
      questions
Takeaways
●
    Developer accessibility
●
    Ecosystem of reuse
●
    Soft spot
Developer Accessibility
Developer Accessibility
    devops




@DEVOPS_BORAT
Developer Accessibility
    devops          self-taught dev




@DEVOPS_BORAT
A Different Five-Minute Rule



What does a first-time user of your system
experience in their first five minutes?
(idea credit: Justin Sheehy, Basho)
Redis
http://simonwillison.net/2009/Oct/22/redis/
PostgreSQL
http://www.postgresql.org/docs/9.1/interactive/sql-createtable.html
Cassandra
http://www.datastax.com/docs/0.7/getting_started/using_cli
Accessibility is Forever
Beyond five minutes:
●
    changing schemas
●
    scaling up
●
    modifying topology
Accessibility is Forever
Beyond five minutes:
●
    changing schemas
●
    scaling up
●
    modifying topology


       An accessible data store will ease
        first-time users in, and support
       experienced users as they expand
Ecosystem of Reuse
Spectrum of Reusability


Monolithic System         System Kernel
Spectrum of Reusability


Monolithic System            System Kernel


MongoDB
 Redis


 Use as
provided
Spectrum of Reusability


Monolithic System            System Kernel


MongoDB      Cassandra
 Redis       Voldemort


 Use as     Pick between
provided    components
Spectrum of Reusability


Monolithic System                System Kernel


MongoDB      Cassandra   ZooKeeper
 Redis       Voldemort    LevelDB


 Use as     Pick between Reusable
provided    components components
Spectrum of Reusability


Monolithic System                System Kernel


MongoDB      Cassandra   ZooKeeper
 Redis       Voldemort    LevelDB     riak_core


 Use as     Pick between Reusable     Build your
provided    components components    own system
And finally, a soft spot
polyglot persistence
            =
right tool for right task
Polyglot persistence: Where's the data?




“HBase at Mendeley,” Dan Harvey
http://www.slideshare.net/danharvey/hbase-at-mendeley
Polyglot persistence: Where's the data?




“HBase at Mendeley,” Dan Harvey
http://www.slideshare.net/danharvey/hbase-at-mendeley
Polyglot persistence: Where's the data?




Aid developers in reasoning about data consistency
          across multiple storage engines
“HBase at Mendeley,” Dan Harvey
http://www.slideshare.net/danharvey/hbase-at-mendeley
interesting properties
  real-world usage
     takeaways
      questions
●
    Systems: Polyglot persistence + data consistency?
●
    Systems: Polyglot persistence + data consistency?
●
    Operations: Availability/consistency/latency tradeoffs in
    datacenters?
●
    Systems: Polyglot persistence + data consistency?
●
    Operations: Availability/consistency/latency tradeoffs in
    datacenters?
●
    Accessibility: RDBMS five-minute usability?
●
    Systems: Polyglot persistence + data consistency?
●
    Operations: Availability/consistency/latency tradeoffs in
    datacenters?
●
    Accessibility: RDBMS five-minute usability?
●
    Accessibility: Scale-up wizard for storage systems?
●
    Systems: Polyglot persistence + data consistency?
●
    Operations: Availability/consistency/latency tradeoffs in
    datacenters?
●
    Accessibility: RDBMS five-minute usability?
●
    Accessibility: Scale-up wizard for storage systems?
●
    Comparisons: Design or implementation?
●
    Systems: Polyglot persistence + data consistency?
●
    Operations: Availability/consistency/latency tradeoffs in
    datacenters?
●
    Accessibility: RDBMS five-minute usability?
●
    Accessibility: Scale-up wizard for storage systems?
●
    Comparisons: Design or implementation?
●
    Future: Next-generation NoSQL stores?
Thank You!
●
    Systems: Polyglot persistence + data consistency?
●
    Operations: Availability/consistency/latency tradeoffs in
    datacenters?
●
    Accessibility: RDBMS five-minute usability?
●
    Accessibility: Scale-up wizard for storage systems?
●
    Comparisons: Design or implementation?
●
    Future: Next-generation NoSQL stores?

                    Adam Marcus
            marcua@csail.mit.edu / @marcua
Photo Credits
http://www.flickr.com/photos/dhannah/457765
7955/
http://www.flickr.com/photos/27316226@N02/3
000888100/sizes/m/in/photostream/
http://www.texample.net/tikz/examples/valenti
ne-heart/
http://voltdb.com/sites/default/files/VCE_button
.png

More Related Content

PDF
HPTS 2011: The NoSQL Ecosystem
PDF
Overview of no sql
PPT
No sql landscape_nosqltips
PDF
SQL, NoSQL, NewSQL? What's a developer to do?
PPTX
Introduction to Cassandra (June 2010)
PDF
Optimizing RocksDB for Open-Channel SSDs
PDF
On Rails with Apache Cassandra
PPTX
The Hive Think Tank: Rocking the Database World with RocksDB
HPTS 2011: The NoSQL Ecosystem
Overview of no sql
No sql landscape_nosqltips
SQL, NoSQL, NewSQL? What's a developer to do?
Introduction to Cassandra (June 2010)
Optimizing RocksDB for Open-Channel SSDs
On Rails with Apache Cassandra
The Hive Think Tank: Rocking the Database World with RocksDB

What's hot (20)

PDF
MyCassandra (Full English Version)
PDF
Java BigData Full Stack Development (version 2.0)
PPTX
Demystfying nosql databases
PPTX
NoSQL Intro with cassandra
PDF
Log Structured Merge Tree
PDF
MyRocks Deep Dive
PDF
MyCassandra: A Cloud Storage Supporting both Read Heavy and Write Heavy Workl...
PDF
Non Relational Databases
PDF
M|18 How to use MyRocks with MariaDB Server
PPT
Wmware NoSQL
PPTX
Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...
KEY
NoSQL Technology
PDF
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
PPTX
Ceph Introduction 2017
PDF
Scaling up and accelerating Drupal 8 with NoSQL
PPTX
Some key value stores using log-structure
PDF
Red Hat Storage - Introduction to GlusterFS
PPTX
When is MyRocks good?
PPT
MongoDB Pros and Cons
PDF
No sq lv1_0
MyCassandra (Full English Version)
Java BigData Full Stack Development (version 2.0)
Demystfying nosql databases
NoSQL Intro with cassandra
Log Structured Merge Tree
MyRocks Deep Dive
MyCassandra: A Cloud Storage Supporting both Read Heavy and Write Heavy Workl...
Non Relational Databases
M|18 How to use MyRocks with MariaDB Server
Wmware NoSQL
Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...
NoSQL Technology
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Ceph Introduction 2017
Scaling up and accelerating Drupal 8 with NoSQL
Some key value stores using log-structure
Red Hat Storage - Introduction to GlusterFS
When is MyRocks good?
MongoDB Pros and Cons
No sq lv1_0
Ad

Viewers also liked (7)

PPTX
The New Rules for the Public Solicitation for Funding
PDF
A Focus on Efficiency
PDF
Health Connectivity Sylvia
PDF
Aztie Econ Stimulus Gsp Consulting
PPTX
ethology TiE AZ August-2013
PPT
Stimulus Presentation for TiE AZ June 2009
PDF
Ramakrishnan Keynote Ladis2009
The New Rules for the Public Solicitation for Funding
A Focus on Efficiency
Health Connectivity Sylvia
Aztie Econ Stimulus Gsp Consulting
ethology TiE AZ August-2013
Stimulus Presentation for TiE AZ June 2009
Ramakrishnan Keynote Ladis2009
Ad

Similar to The NoSQL Ecosystem (20)

PDF
Spring one2gx2010 spring-nonrelational_data
PPTX
No sql databases
PPTX
Lviv EDGE 2 - NoSQL
PDF
SQL? NoSQL? NewSQL?!? What’s a Java developer to do? - JDC2012 Cairo, Egypt
PPTX
Sql vs NoSQL
PDF
PDF
No SQL Technologies
PPTX
PPTX
Navigating NoSQL in cloudy skies
PDF
Scaling the Web: Databases & NoSQL
PPTX
Selecting best NoSQL
PPTX
DataStax C*ollege Credit: What and Why NoSQL?
KEY
NoSQL in the context of Social Web
PPTX
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
PDF
The Cassandra Distributed Database
PDF
Is NoSQL The Future of Data Storage?
PPTX
Big Data (NJ SQL Server User Group)
PDF
Cassandra Talk: Austin JUG
PPTX
No sql solutions - 공개용
PPTX
An Introduction to Big Data, NoSQL and MongoDB
Spring one2gx2010 spring-nonrelational_data
No sql databases
Lviv EDGE 2 - NoSQL
SQL? NoSQL? NewSQL?!? What’s a Java developer to do? - JDC2012 Cairo, Egypt
Sql vs NoSQL
No SQL Technologies
Navigating NoSQL in cloudy skies
Scaling the Web: Databases & NoSQL
Selecting best NoSQL
DataStax C*ollege Credit: What and Why NoSQL?
NoSQL in the context of Social Web
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
The Cassandra Distributed Database
Is NoSQL The Future of Data Storage?
Big Data (NJ SQL Server User Group)
Cassandra Talk: Austin JUG
No sql solutions - 공개용
An Introduction to Big Data, NoSQL and MongoDB

Recently uploaded (20)

PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
August Patch Tuesday
PDF
Mushroom cultivation and it's methods.pdf
PDF
Encapsulation theory and applications.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
WOOl fibre morphology and structure.pdf for textiles
PPTX
Tartificialntelligence_presentation.pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Hybrid model detection and classification of lung cancer
PPTX
1. Introduction to Computer Programming.pptx
PPTX
Chapter 5: Probability Theory and Statistics
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
A novel scalable deep ensemble learning framework for big data classification...
Group 1 Presentation -Planning and Decision Making .pptx
August Patch Tuesday
Mushroom cultivation and it's methods.pdf
Encapsulation theory and applications.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Programs and apps: productivity, graphics, security and other tools
Accuracy of neural networks in brain wave diagnosis of schizophrenia
WOOl fibre morphology and structure.pdf for textiles
Tartificialntelligence_presentation.pptx
Assigned Numbers - 2025 - Bluetooth® Document
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Zenith AI: Advanced Artificial Intelligence
Hybrid model detection and classification of lung cancer
1. Introduction to Computer Programming.pptx
Chapter 5: Probability Theory and Statistics
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
A novel scalable deep ensemble learning framework for big data classification...

The NoSQL Ecosystem

  • 1. The NoSQL Ecosystem Adam Marcus MIT CSAIL marcua@csail.mit.edu / @marcua
  • 2. About Me ● Social Computing + Database Systems ● Easily Distracted: Wrote The NoSQL Ecosystem in The Architecture of Open Source Applications 1 1 http://www.aosabook.org/en/nosql.html
  • 4. History, Compressed Buy RAM Late 1990s Today
  • 5. History, Compressed Buy RAM Wrap RDBMSs Late 1990s Today
  • 6. History, Compressed Buy RAM Wrap RDBMSs NoSQL Late 1990s Today
  • 7. History, Compressed Not Only SQL Buy RAM Wrap RDBMSs NoSQL Late 1990s Today
  • 8. History, Compressed Buy RAM Wrap RDBMSs NoSQL Commercialize Late 1990s Today
  • 9. History, Compressed Buy RAM Wrap RDBMSs NoSQL Commercialize Late 1990s Today
  • 10. The List, So You Don't Yell at Me HBase CouchDB Neo4j Cassandra Riak InfoGrid BerkeleyDB Voldemort HyperTable Redis MongoDB Sones AllegroGraph HyperGraphDB DEX FlockDB VertexDB Oracle NoSQL Tokyo Cabinet MemcacheDB
  • 11. The List, So You Don't Yell at Me Marcus' Law of Databases: HBase CouchDB Neo4j Cassandra Riak InfoGrid The number of persistence HyperTable BerkeleyDB doubles every 1.5 years Voldemort options Redis MongoDB Sones AllegroGraph HyperGraphDB DEX FlockDB VertexDB Oracle NoSQL Tokyo Cabinet MemcacheDB
  • 12. The List, So You Don't Yell at Me Marcus' Law of Databases: HBase CouchDB Neo4j Cassandra Riak InfoGrid The number of persistence HyperTable BerkeleyDB doubles every 1.5 years Voldemort options Redis MongoDB Sones Corollary: AllegroGraph HyperGraphDB I'm sorry I missedDEX FlockDB your persistence optionOracle NoSQL VertexDB Tokyo Cabinet MemcacheDB
  • 13. interesting properties real-world usage takeaways questions
  • 14. interesting properties real-world usage takeaways questions
  • 15. Conventional Wisdom on NoSQL ● Key-based data model ● Sloppy schema ● Single-key transactions ● In-app joins ● Eventually consistent
  • 16. Exceptions are More Interesting ● Data Model ● Query Model ● Transactions ● Consistency
  • 17. Data Model ● Usually key-based... ● Column-families ● Documents ● Data structures
  • 18. Data Model ● Usually key-based... ● Column-families ● Documents ● Data structures ● ...but not always ● Graph stores
  • 19. Query Model ● Redis: data structure-specific operations ● CouchDB, Riak: MapReduce ● Cassandra, MongoDB: SQL-like languages, no joins or transactions
  • 20. Query Model ● Redis: data structure-specific operations ● CouchDB, Riak: MapReduce ● Cassandra, MongoDB: SQL-like languages, no joins or transactions ● Third-party ● High-level: PigLatin, HiveQL ● Library: Cascading, Crunch ● Streaming: Flume, Kafka, S4, Scribe
  • 21. Transactions ● Full ACID for single key ● Redis: multi-key single-node transactions
  • 22. Consistency ● Strong: Appears that all replicas see all writes ● Eventual: Replicas may have different, divergent versions
  • 23. Consistency ● Strong: Appears that all replicas see all writes ● Eventual: Replicas may have different, divergent versions ● Dynamo: strong or eventual (quorum size)
  • 24. Consistency ● Strong: Appears that all replicas see all writes ● Eventual: Replicas may have different, divergent versions ● Dynamo: strong or eventual (quorum size) ● PNUTs: Timeline consistency ● ...many consistency models! See: http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
  • 25. interesting properties real-world usage takeaways questions
  • 26. NoSQL Use-cases ● Cassandra ● HBase ● MongoDB
  • 27. Cassandra ● BigTable data model: key column family ● Dynamo sharding model: consistent hashing ● Eventual or strong consistency
  • 28. Cassandra at Netflix ● Transitioned from Oracle ● Store customer profiles, customer:movie watch log, and detailed usage logging Note: no multi-record locking (e.g., bank transfer) In-datacenter: 3 replicas, per-app consistency read/write quorum = 1, ~1ms latency read/write quorum = 2, ~3ms latency “Replicating Datacenter Oracle with Global Apache Cassandra on AWS” by Adrian Cockcroft http://www.slideshare.net/adrianco/migrating-netflix-from-oracle-to-global-cassandra
  • 29. Cassandra at Netflix ● Transitioned from Oracle ● Store customer profiles, customer:movie watch log, and detailed usage logging ● Note: no multi-record locking (e.g., bank transfer) In-datacenter: 3 replicas, per-app consistency read/write quorum = 1, ~1ms latency read/write quorum = 2, ~3ms latency “Replicating Datacenter Oracle with Global Apache Cassandra on AWS” by Adrian Cockcroft http://www.slideshare.net/adrianco/migrating-netflix-from-oracle-to-global-cassandra
  • 30. Cassandra at Netflix ● Transitioned from Oracle ● Store customer profiles, customer:movie watch log, and detailed usage logging ● Note: no multi-record locking (e.g., bank transfer) ● In-datacenter: 3 replicas, per-app consistency “Replicating Datacenter Oracle with Global Apache Cassandra on AWS” by Adrian Cockcroft http://www.slideshare.net/adrianco/migrating-netflix-from-oracle-to-global-cassandra
  • 31. Cassandra at Netflix (cont'd) ● Benefit: async inter-datacenter replication ● Benefit: no downtime for schema changes ● Benefit: hooks for live backups
  • 32. HBase ● Data model: key column family ● Sharding model: range partitioning ● Strong consistency Applications Logging events/crawls, storing analytics Twitter: replicate data from MySQL, Hadoop analytics Facebook Messages
  • 33. HBase ● Data model: key column family ● Sharding model: range partitioning ● Strong consistency ● Applications ● Logging events/crawls, storing analytics ● Twitter: replicate data from MySQL, Hadoop analytics ● Facebook Messages
  • 34. HBase for Facebook Messages ● Cassandra/Dynamo eventual consistency was difficult to program against Benefit: simple consistency model Benefit: flexible data model Benefit: simple sharding, load balancing, replication
  • 35. HBase for Facebook Messages ● Cassandra/Dynamo eventual consistency was difficult to program against ● Benefit: simple consistency model ● Benefit: flexible data model ● Benefit: simple sharding, load balancing, replication
  • 36. MongoDB ● Document-based data model ● Range-based partitioning ● Consistency depends on how you use it
  • 37. MongoDB: Two use-cases ● Archiving at Craigslist ● 2.2B historical posts, semi-structured ● Relatively large blobs: avg 2KB, max > 4 MB
  • 38. MongoDB: Two use-cases ● Archiving at Craigslist ● 2.2B historical posts, semi-structured ● Relatively large blobs: avg 2KB, max > 4 MB ● Checkins at Foursquare ● Geospatial indexing ● Small location-based updates, sharded on user
  • 39. interesting properties real-world usage takeaways questions
  • 40. Takeaways ● Developer accessibility ● Ecosystem of reuse ● Soft spot
  • 42. Developer Accessibility devops @DEVOPS_BORAT
  • 43. Developer Accessibility devops self-taught dev @DEVOPS_BORAT
  • 44. A Different Five-Minute Rule What does a first-time user of your system experience in their first five minutes? (idea credit: Justin Sheehy, Basho)
  • 48. Accessibility is Forever Beyond five minutes: ● changing schemas ● scaling up ● modifying topology
  • 49. Accessibility is Forever Beyond five minutes: ● changing schemas ● scaling up ● modifying topology An accessible data store will ease first-time users in, and support experienced users as they expand
  • 51. Spectrum of Reusability Monolithic System System Kernel
  • 52. Spectrum of Reusability Monolithic System System Kernel MongoDB Redis Use as provided
  • 53. Spectrum of Reusability Monolithic System System Kernel MongoDB Cassandra Redis Voldemort Use as Pick between provided components
  • 54. Spectrum of Reusability Monolithic System System Kernel MongoDB Cassandra ZooKeeper Redis Voldemort LevelDB Use as Pick between Reusable provided components components
  • 55. Spectrum of Reusability Monolithic System System Kernel MongoDB Cassandra ZooKeeper Redis Voldemort LevelDB riak_core Use as Pick between Reusable Build your provided components components own system
  • 56. And finally, a soft spot
  • 57. polyglot persistence = right tool for right task
  • 58. Polyglot persistence: Where's the data? “HBase at Mendeley,” Dan Harvey http://www.slideshare.net/danharvey/hbase-at-mendeley
  • 59. Polyglot persistence: Where's the data? “HBase at Mendeley,” Dan Harvey http://www.slideshare.net/danharvey/hbase-at-mendeley
  • 60. Polyglot persistence: Where's the data? Aid developers in reasoning about data consistency across multiple storage engines “HBase at Mendeley,” Dan Harvey http://www.slideshare.net/danharvey/hbase-at-mendeley
  • 61. interesting properties real-world usage takeaways questions
  • 62. Systems: Polyglot persistence + data consistency?
  • 63. Systems: Polyglot persistence + data consistency? ● Operations: Availability/consistency/latency tradeoffs in datacenters?
  • 64. Systems: Polyglot persistence + data consistency? ● Operations: Availability/consistency/latency tradeoffs in datacenters? ● Accessibility: RDBMS five-minute usability?
  • 65. Systems: Polyglot persistence + data consistency? ● Operations: Availability/consistency/latency tradeoffs in datacenters? ● Accessibility: RDBMS five-minute usability? ● Accessibility: Scale-up wizard for storage systems?
  • 66. Systems: Polyglot persistence + data consistency? ● Operations: Availability/consistency/latency tradeoffs in datacenters? ● Accessibility: RDBMS five-minute usability? ● Accessibility: Scale-up wizard for storage systems? ● Comparisons: Design or implementation?
  • 67. Systems: Polyglot persistence + data consistency? ● Operations: Availability/consistency/latency tradeoffs in datacenters? ● Accessibility: RDBMS five-minute usability? ● Accessibility: Scale-up wizard for storage systems? ● Comparisons: Design or implementation? ● Future: Next-generation NoSQL stores?
  • 68. Thank You! ● Systems: Polyglot persistence + data consistency? ● Operations: Availability/consistency/latency tradeoffs in datacenters? ● Accessibility: RDBMS five-minute usability? ● Accessibility: Scale-up wizard for storage systems? ● Comparisons: Design or implementation? ● Future: Next-generation NoSQL stores? Adam Marcus marcua@csail.mit.edu / @marcua