May 31 2011

Episode 123: NoSQL

Play

Find out what NoSQL is and isnt.

News and Follow/Ups – 02:24

Geek Tools – 13:15

Webapps – 15:22

NoSQL – 19:56

  • What are they?
    • Usually don’t require fixed table structures
    • Usually used to scale horizontally
      • Add more commodity nodes as opposed to adding more resources and using expensive hardware
  • Why would you use them?
    • Scalability
    • Performance
    • In certain use cases they are easier to implement
  • When would you NOT use them?
    • If you don’t know ahead of time how you are going to query or data
      • Applies mainly to key-value type NoSQL
    • Usually arguments start because people think in terms of RDBMS vs NoSQL.  They are usually implemented side by side for difference use cases.  It is not an all or nothing.
  • CAP Theorem
    • Consistency (all nodes see the same data at the same time)
    • Availability (node failures do not prevent survivors from continuing to operate)
    • Partition tolerance (the system continues to operate despite arbitrary message loss)
    • Cap Theorem says that a system can satisfy two of these but not all three.
  • Popular DocDBs
  • Key-value based
    • Redis
      • Blizzard
      • Stackoverflow
      • Github
      • Tweetdeck
    • Memcached
      • Just about everyone, although many people are moving to redis
    • Cassandra
      • Cisco
      • Cloudkick
  • Column oriented
  • Graphdb
    • neo4j
      • Good at multiple relationships
        • Think product categories
        • User friend follow relationships
      • Amazon