NoSQL: what does it mean, how did we get here, and why should I care? - Hugo Rodger-Brown
Upcoming SlideShare
Loading in...5
×
 

NoSQL: what does it mean, how did we get here, and why should I care? - Hugo Rodger-Brown

on

  • 5,278 views

 

Statistics

Views

Total Views
5,278
Views on SlideShare
5,278
Embed Views
0

Actions

Likes
4
Downloads
143
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Running order
  • NoSQL doesn’t have a formal definitionIt’s subjective, and has come to mean different things to different peopleThe original use, byCarlo Strozzi, was used for a lightweight relational database that did not expose a SQL interfaceIt was reintroduced as a term used to describe open-source non-relational databases for a conference held in 2009Summary: we have the concept of a form of persistence / data storage mechanism that is fundamentally different from RDBMS
  • Normalisation is the key here.SQL is an ISO standard, and pretty much everyone can craft a SELECT statementSQL also contains complex semantics around JOIN, GROUP, ORDER BY statementsTransactions – the bank account example
  • http://nosql-database.org/

NoSQL: what does it mean, how did we get here, and why should I care? - Hugo Rodger-Brown NoSQL: what does it mean, how did we get here, and why should I care? - Hugo Rodger-Brown Presentation Transcript

  • NoSQL
    South London Geek Night
    14/07/2010
  • NoSQL
    What does it mean?
    RDBMS legacy and rise of NoSQL
    NoSQL classification
    Pros and Cons
    Possible use cases
    Real-world examples
    What next?
  • Who am I?
    Hugo Rodger-Brown
    CTO @ Profero Connect
    twitter.com/hugorodgerbrown
    hugorodgerbrown.blogspot.com
    Things I like: SEO, Scale, Social media
    Things I don’t: Databases
  • What does it mean?
    Movement, not a specification
    Subjective term (like Web 2.0)
    Originally used in 1998
    Reintroduced at Rackspace to refer to non-RDBMS
    NoSQL != No SQL
    NoSQL == Not Only SQL ?
  • NoSQL Comment
  • RDBMS Legacy
    Efficient data storage
    Powerful querying capabilities (SQL)
    Support ACID Transactions
    Mature, well supported
    Ubiquitous
    Bottom-up design
    Storage is cheap
    O/R Impedance
    Complex to manage
    Always the bottleneck
    Who really needs transactions?
  • Rise of NoSQL
    Internet
    Google
    2006 Bigtable whitepaper (Google)
    “a sparse, distributed multi-dimensional sorted map”
    2007 Dynamo whitepaper (Amazon)
    2008 Cassandra released (Facebook)
    “a BigTable data model running on an Amazon Dynamo-like infrastructure”
    2009 Voldemort released (LinkedIn)
    “a big, distributed, persistent, fault-tolerant hash table”
  • Rise of NoSQL – Amazon
    “There are many services on Amazon’s platform that only need primary-key access to a data store. For many services, such as those that provide best seller lists, shopping carts, customer preferences, session management, sales rank, and product catalog, the common pattern of using a relational database would lead to inefficiencies and limit scale and availability. Dynamo provides a simple primary-key only interface to meet the requirements of these applications.”
  • NoSQL Data Store Classifications
    Key-Value store
    Amazon SimpleDB, Amazon Dynamo (Amazon), Tokyo Cabinet, Voldemort (Gilt Groupe)
    Wide-column (sparse) store
    Hadoop (Yahoo, EBay), Cassandra (Facebook), Bigtable (Google!), Azure Table Storage (MSFT), Excel(!)
    Document database
    MongoDB, CouchDB (BBC), RavenDB
    Graph database
    Neo4J, InfoGrid
    Object database
    Db4o, Versant, Perst, Cache
    Data Grids
    Infinispan, GigaSpaces, Terracotta
  • Why NoSQL
    Good
    Flexible (schema-less)
    Very scalable
    Simple to use and operate
    Eventually consistent
    Cheap
    Suited to Web applications
    Bad
    Immature
    No common standards
    Poor transaction support
    Poor query support
    New mindset required
  • NoSQL Use Cases
    Good Examples
    Logging data
    Shopping carts
    Favourites
    Preferences
    Session data
    Mock data providers
    Temporary / working data
    Variable schema data
    Stick with RDBMS
    Transactions (orders etc.)
    LOB applications
    Anything involving $$$
    Business-critical data
    Reporting
  • Real-world Examples
  • Real-world Examples
  • Real-world Examples
    “As I described in an earlier blog post, the new BBC homepage has been built on a whole new technical architecture. Since launching we’ve found an issue with the service we use to save users’ customisation settings. Although we ran a public beta for more than 2 months, this problem only became apparent when we moved the whole audience across to the new site, increasing the load on the platform 20 times. Despite thorough load testing before launch we were unable to accurately predict the type and combination of customisations that users would perform, and as a result we now need to re-architect the way we save your homepage customisation settings in a more efficient way.”
  • Summary
    NoSQL is not a replacement for RDBMS
    No two scenarios are the same
    Use best tool for the job
    Experiment
  • Demo - CouchDB