• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
MongoDB (is) For Rubyists - Boston Ruby
 

MongoDB (is) For Rubyists - Boston Ruby

on

  • 27,428 views

Slides from a presentation on MongoDB and Ruby at Boston Ruby Meetup, 12/8/09

Slides from a presentation on MongoDB and Ruby at Boston Ruby Meetup, 12/8/09

Statistics

Views

Total Views
27,428
Views on SlideShare
12,170
Embed Views
15,258

Actions

Likes
30
Downloads
308
Comments
4

25 Embeds 15,258

http://kylebanker.com 12591
http://tech.lezi.com 2326
http://localhost 151
http://www.slideshare.net 72
http://nosql.mypopescu.com 43
http://localhost-readerhero.dev 26
http://xbora.tv 8
http://blog.shrt.nl 7
http://reader.code-laboratory.com 5
http://translate.googleusercontent.com 5
http://web.archive.org 4
http://theoldreader.com 4
http://webcache.googleusercontent.com 3
http://cache.baidu.com 2
http://newsblur.com 1
http://edifu22.blogspot.com 1
http://www.tinkrbox.com:8080 1
http://drizzlin.com 1
http://localhost:4331 1
http://mongo.kylebanker.com 1
http://tecnojavierpb.blogspot.com 1
http://twitter.com 1
http://tech.lezi.com} {363774458|||pingback 1
http://xss.yandex.net 1
http://www.mefeedia.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

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

14 of 4 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • @michael i'm pretty sure it was filmed. i think that boston.rb will post it in the next month or so.
    Are you sure you want to
    Your message goes here
    Processing…
  • Is there any video of this talk?
    Are you sure you want to
    Your message goes here
    Processing…
  • Thanks, Wynn! Seems like the Rubyists are indeed loving MongoDB! (btw - loved your MongoDB presentation, too).
    Are you sure you want to
    Your message goes here
    Processing…
  • Great presentation! I love the Q&A approach. Let's get more Rubyists in the MongoDB party.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    MongoDB (is) For Rubyists - Boston Ruby MongoDB (is) For Rubyists - Boston Ruby Presentation Transcript

    • Intro Wednesday, December 9, 2009
    • Q. Why do we love Ruby? Wednesday, December 9, 2009
    • A. “Ruby is designed to be human-oriented. It reduces the burden of programming. It tries to push jobs back to machines. You can accomplish more tasks with less work, in smaller yet readable code.” - Matz Wednesday, December 9, 2009
    • 01001000011101010110 11010110000101101110 0111011001110011 01001101011000010110 00110110100001101001 0110111001100101 Wednesday, December 9, 2009
    • Human vs Machine Wednesday, December 9, 2009
    • Q. Why do I love MongoDB? Wednesday, December 9, 2009
    • A. “MongoDB is designed to be human-oriented. It reduces the burden of programming. It tries to push jobs back to machines. You can accomplish more tasks with less work, in smaller yet readable code.” - Banker (indebted to Matz) Wednesday, December 9, 2009
    • MongoDB (is) for Rubyists * * and all human-oriented programmers Wednesday, December 9, 2009
    • 1. SQL (or No) Wednesday, December 9, 2009
    • Key/Value Stores Dynamo, Voldemort, Redis, Memcached (keyword: “stores”) Wednesday, December 9, 2009
    • Column-Oriented Cassandra, BigTable Wednesday, December 9, 2009
    • Document Databases MongoDB, CouchDB Wednesday, December 9, 2009
    • RDBMS Durable Transactional Normalized Rigorous Queryable (deeply) Wednesday, December 9, 2009
    • Wednesday, December 9, 2009
    • Notes: RDBMS is proven necessary * *sometimes Wednesday, December 9, 2009
    • Why build MongoDB? Wednesday, December 9, 2009
    • Mean & Extremes Key-Value MongoDB Relational Wednesday, December 9, 2009
    • MongoDB high-performance built for scale document-oriented schema-free Wednesday, December 9, 2009
    • high performance relaxed acid document model memory-mapped Wednesday, December 9, 2009
    • master-slave M S S S Wednesday, December 9, 2009
    • replica-pairs M (S) S (M) M (S) S (M) M (S) S (M) Wednesday, December 9, 2009
    • (auto) sharding Wednesday, December 9, 2009
    • Wednesday, December 9, 2009
    • client Wednesday, December 9, 2009
    • mongos client Wednesday, December 9, 2009
    • Shards mongod mongod mongod mongod mongod mongod mongos client Wednesday, December 9, 2009
    • Shards mongod mongod mongod Config mongod mongod mongod Servers mongod mongod mongod mongos client Wednesday, December 9, 2009
    • Shards mongod mongod mongod ... Config mongod mongod mongod Servers mongod mongod mongod mongos mongos ... client Wednesday, December 9, 2009
    • document-oriented {:sku => ‘637636’, :name => ‘Linen tailored pant’, :about => [{:title => ‘fabric & care’, :content => [‘Dry clean’, ‘Imported’]}, {:title => ‘overview’, :content => [‘Tailored fit’, ‘Yarn dyed’]} ] } Wednesday, December 9, 2009
    • schema-free {:sku => ‘637636’, :note => ‘Added this with no migration!” :name => ‘Linen tailored pant’, :about => [{:title => ‘fabric & care’, :content => [‘Dry clean’, ‘Imported’]}, {:title => ‘overview’, :content => [‘Tailored fit’, ‘Yarn dyed’]} ] Wednesday, December 9, 2009
    • Q. How many times have you typed this? Wednesday, December 9, 2009
    • Q. How many times have you typed this? rake db:migrate Wednesday, December 9, 2009
    • Q. How do you make an RDBMS dynamic? Wednesday, December 9, 2009
    • A. Hundreds of little tables. Wednesday, December 9, 2009
    • Wednesday, December 9, 2009
    • Simulating a flexible schema Wednesday, December 9, 2009
    • Simulating a flexible schema What’s the join like? Wednesday, December 9, 2009
    • Simulating a flexible schema What’s the join like? Can we reason about it? Wednesday, December 9, 2009
    • Q. What % of these tables could be better represented as documents? Wednesday, December 9, 2009
    • Machine Wednesday, December 9, 2009
    • Wednesday, December 9, 2009
    • human Wednesday, December 9, 2009
    • {:sku => ‘637636’, :name => ‘Linen tailored pant’, :about => [{:title => ‘fabric & care’, :content => [‘Dry clean’, ‘Imported’]}, {:title => ‘overview’, :content => [‘Tailored fit’, ‘Yarn dyed’]} ] }* * Admittedly simplified, but not far-fetched. Wednesday, December 9, 2009
    • 2. Ruby to MongoDB Wednesday, December 9, 2009
    • Anatomy of an Insert Wednesday, December 9, 2009
    • Wednesday, December 9, 2009
    • Connection mongod (or mongos) Database a database Collection a schema-free table Wednesday, December 9, 2009
    • Wednesday, December 9, 2009
    • ObjectID Generation BSON Serialization Fire and Forget Wednesday, December 9, 2009
    • Dynamic Queries * * like sql Wednesday, December 9, 2009
    • Wednesday, December 9, 2009
    • Wednesday, December 9, 2009
    • b-tree Indexes * * up to 40 per collection Wednesday, December 9, 2009
    • Wednesday, December 9, 2009
    • Wednesday, December 9, 2009
    • Flexible & Fast Updates * * and upserts, too Wednesday, December 9, 2009
    • Wednesday, December 9, 2009
    • Wednesday, December 9, 2009
    • Wednesday, December 9, 2009
    • Wednesday, December 9, 2009
    • Elegant Operators * * document keywords Wednesday, December 9, 2009
    • for queries $ne $in $nin $mod $all $size $exists Wednesday, December 9, 2009
    • for updates $inc $set $push $pushAll $pop $pull $pullAll Wednesday, December 9, 2009
    • for everything else: Javascript * * yes, MongoDB speaks JS Wednesday, December 9, 2009
    • group where map-reduce Wednesday, December 9, 2009
    • 3. Design Patterns Wednesday, December 9, 2009
    • One to y Many Many Many Man any Many Many Many any Many Many Many M Many Many Many Many Wednesday, December 9, 2009
    • comments has_many votes Wednesday, December 9, 2009
    • relation comments votes comment_id user_id Wednesday, December 9, 2009
    • document comments Wednesday, December 9, 2009
    • post has_many comments Wednesday, December 9, 2009
    • relation post comments post_id user_id tree attrs Wednesday, December 9, 2009
    • 1. embedded document {:title => ‘a life unexamined’, :comments => [ {:author => ‘socrates’, :text => ‘is not worthwhile’}, {:author => ‘epicurus’, :text => ‘leads to bliss’} ] } Wednesday, December 9, 2009
    • 2. embedded & nested {:comments => [ {:author => ‘socrates’, :text => ‘is not worthwhile’, :comments => [ {:author => ‘epicurus’, :text => ‘leads to bliss’}]}, ] } Wednesday, December 9, 2009
    • 3. normalized [{:author => ‘socrates’, :text => ‘is not worthwhile’, :post_id => ‘4c4fa6d000002’}, {:author => ‘epicurus’, :text => ‘leads to bliss’, :post_id => ‘4c4fa6d000002’} ] Wednesday, December 9, 2009
    • Embed relationships tightly-bound concepts tradeoffs Break out first-class docs independent concepts Wednesday, December 9, 2009
    • any Many Many Many any Many Many Many M Many Many Many Many to y Many Many Many Man any Many Many Many ny Many Many Many M Many Many Many Many Wednesday, December 9, 2009
    • relation clients join client_id address_id addresses Wednesday, December 9, 2009
    • document Wednesday, December 9, 2009
    • Den o malization r { :username => ‘socrates’, :text => ‘...be as you wish’, :user_id => ‘4c4fa6d000002’ } Wednesday, December 9, 2009
    • Exercises for the coder Wednesday, December 9, 2009
    • GridFS for images, videos, music, large binary objects Wednesday, December 9, 2009
    • MongoDB JS Shell MongoMapper Wednesday, December 9, 2009
    • MongoDB JS Shell MongoMapper Pre-compiled binaries Thorough documentation Multi-language support Wednesday, December 9, 2009
    • Outro Wednesday, December 9, 2009
    • Q. What is MongoDB good for? Wednesday, December 9, 2009
    • A. the web real-time logging analytics Wednesday, December 9, 2009
    • A. the web real-time logging analytics clear path to scalability comprehensible data models Wednesday, December 9, 2009
    • A. the web real-time logging analytics clear path to scalability comprehensible data models human-oriented programmers Wednesday, December 9, 2009
    • google groups: mongodb-user freenode: #mongodb docs & download: mongodb.org twitter.com/hwaet kyle@10gen.com inspired by slideshare.net/timanglade/tin Wednesday, December 9, 2009