MongoDB London PHP

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    6 Favorites

    MongoDB London PHP - Presentation Transcript

    1. open-source, high-performance, schema-free, document-oriented database
    2. RDBMS • Great for many applications • Shortcomings • Scalability • Flexibility
    3. CAP Theorem • Consistency • Availability • Tolerance to network Partitions • Pick two http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf
    4. ACID vs BASE • Atomicity • Basically Available • Consistency • Soft state • Isolation • Eventually consistent • Durability
    5. Schema-free • Loosening constraints - added flexibility • Dynamically typed languages • Migrations
    6. BigTable • Single master node • Row / Column hybrid • Versioned
    7. BigTable • Open-source clones: • HBase • Hypertable
    8. Dynamo • Simple Key/Value store • No master node • Write to any (many) nodes • Read from one or more nodes (balance speed vs. consistency) • Read repair
    9. Dynamo • Open-source clones • Project Voldemort • Cassandra - data model more like BigTable • Dynomite
    10. memcached • Used as a caching layer • Essentially a key/value store • RAM only - fast • Does away with ACID
    11. Redis • Like memcached • Different • Values can be strings, lists, sets • Non-volatile
    12. Tokyo Cabinet + Tyrant • Key/value store with focus on speed • Some more advanced queries • Sorting, range or prefix matching • Multiple storage engines • Hash, B-Tree, Fixed length and Table
    13. • A lot in common with MongoDB: • Document-oriented • Schema-free • JSON-style documents
    14. • Differences • MVCC based • Replication as path to scalability • Query through predefined views • ACID • REST
    15. • Focus on performance • Rich dynamic queries • Secondary indexes • Replication / failover • Auto-sharding • Many platforms / languages supported
    16. Good at • The web • Caching • High volume / low value • Scalability
    17. Less good at • Highly transactional • Ad-hoc business intelligence • Problems that require SQL
    18. Mongo PHP Driver • PHP extension • Available on PECL pecl install mongo
    19. Document • Unit of storage (think row) • Just an Array • Can store dates, integers, floating point, strings, etc.
    20. Collection • Schema-free equivalent of a table • Logical groups of documents • Indexes are per-collection
    21. Blog back-end
    22. Post array(‘author’ => ‘mike’, ‘date’ => new MongoDate(), ‘text’ => ‘my blog post...’, ‘tags’ => array(‘mongodb’, ‘php’))
    23. New post $doc = array(‘author’ => ‘mike’, ‘date’ => new MongoDate(), ‘text’ => ‘my blog post...’, ‘tags’ => array(‘mongodb’, ‘php’)); $collection->save($doc);
    24. Last 10 posts $cursor = $posts->find()-> sort(array(‘date’=>-1))-> limit(10); foreach($cursor as $post) { echo $post[‘text’]; }
    25. Posts by author $posts->find(array(‘author’=>‘mike’))
    26. Posts ending with ‘PHP’ $posts->find(array(‘text’=>new MongoRegex(‘/PHP$/’)))
    27. Posts with a tag $posts->find(array(‘tag’=>‘mongodb’)) ... and fast $posts->ensureIndex(array(‘tag’=>1))
    28. Counting posts $posts->count() $posts->find(array(‘author’=>‘mike’))->count()
    29. Migration: adding titles • Easy - just start adding them to documents
    30. Advanced queries • $gt, $lt, $gte, $lte, $ne, $all, $in, $nin • $where clause “this.author == ‘mike’ || this.comments.length > 5” • group
    31. Other cool stuff • Capped collections • Unique indexes • Mongo shell • GridFS • morph - http://code.google.com/p/ mongodb-morph/
    32. • Download MongoDB http://www.mongodb.org • Install the PHP Driver • Try it out!
    33. • http://www.mongodb.org • irc.freenode.net#mongodb • mongodb-user on google groups • @mongodb, @mdirolf • mike@10gen.com • http://www.slideshare.net/mdirolf

    + Mike DirolfMike Dirolf, 4 months ago

    custom

    681 views, 6 favs, 0 embeds more stats

    MongoDB talk from the July '09 London PHP meetup.

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 681
      • 681 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 6
    • Downloads 20
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories