Mongo db japan

download Mongo db japan

of 38

  • date post

    06-May-2015
  • Category

    Documents

  • view

    3.837
  • download

    2

Embed Size (px)

description

Tokyo, nov 1st 2010.

Transcript of Mongo db japan

  • 1.Roger Bodamer @rogerb

2. Baseball World Series Giants lead 3-1 over Rangers 3. What is MongoDB? quick introduction design session deploy mongodb scaling 4. MongoDB adoption is very strong 90,000 Database downloads per month 5. Over 1,000 Production Deployments 6. Platform and Language support MongoDB is Implemented in C++ for best performance Platforms 32/64 bit Windows Linux, Mac OS-X, FreeBSD, Solaris 7. Platform and Language support MongoDB is Implemented in C++ for best performance Platforms 32/64 bit Windows Linux, Mac OS-X, FreeBSD, Solaris Language drivers for Ruby / Ruby-on-Rails Java / C# / JavaScript C / C++ Erlang Python, Perl others... .. and much more ! .. 8. non-relational,next-generation operationaldatastoresanddatabases NoSQL Really Means: 9. RDBMS (Oracle,MySQL) 10. RDBMS (Oracle,MySQL) New Gen. OLAP (vertica,aster, greenplum) 11. RDBMS (Oracle,MySQL) New Gen. OLAP (vertica,aster, greenplum) Non-relational Operational Stores (NoSQL) 12. Philosophy:maximizefeatures-uptothekneeinthecurve,thenstop depthoffunctionality scalability&performance memcached key/value RDBMS 13. Horizontally Scalable Architectures nojoins nocomplextransactions+ 14. New Data Models nojoins nocomplextransactions+ 15. Improved ways to develop New Data Models -> 16. Terminology RDBMS MongoDB Table Collection Row(s) JSONDocument Index Index Join Embedding&Linking Partition Shard PartitionKey ShardKey 17. MongoDB Design Session 18. MongoDB Design Session Blog Post Document p={author:roger, date:newDate(), text:SpiritedAway, tags:[Tezuka,Manga]} >db.posts.save(p) 19. Query Posts Collection >db.posts.nd() { _id : ObjectId("4c4ba5c0672c685e5e8aabf3"), author : "roger", date : "Sat Jul 24 2010 19:47:11 GMT-0700 (PDT)", text : "Spirited Away", tags : [ "Tezuka", "Manga" ] } Notes: - _id is unique, but can be anything youd like 20. Create index on any Field in Document // 1 means ascending, -1 means descending >db.posts.ensureIndex({author: 1}) >db.posts.nd({author: 'roger'}) { _id : ObjectId("4c4ba5c0672c685e5e8aabf3"), author : "roger", ... } Secondary Index 21. Query operators Conditional operators: $ne, $in, $nin, $mod, $all, $size, $exists, $type, .. $lt, $lte, $gt, $gte, $ne, ... // nd posts with any tags >db.posts.nd({tags: {$exists: true}}) 22. Query operators Conditional operators: $ne, $in, $nin, $mod, $all, $size, $exists, $type, .. $lt, $lte, $gt, $gte, $ne, // nd posts with any tags >db.posts.nd({tags: {$exists: true}}) Regular expressions: // posts where author starts with r >db.posts.nd({author: /^r*/i }) 23. Query operators Conditional operators: $ne, $in, $nin, $mod, $all, $size, $exists, $type, .. $lt, $lte, $gt, $gte, $ne, // nd posts with any tags >db.posts.nd({tags: {$exists: true}}) Regular expressions: // posts where author starts with k >db.posts.nd({author: /^k*/i }) Counting: // posts written by roger >db.posts.find({author:roger}).count() 24. Extending the Schema comment = {author: fred, date: new Date(), text: Best Movie Ever} update = { $push: {comments: comment}} >db.posts.update({_id:...},update) Adding Comments to Blog 25. { _id : ObjectId("4c4ba5c0672c685e5e8aabf3"), author : "roger", date : "Sat Jul 24 2010 19:47:11 GMT-0700 (PDT)", text : "Spirited Away", tags : [ "Tezuka", "Manga" ], comments : [ { author : "Fred", date : "Sat Jul 24 2010 20:51:03 GMT-0700 (PDT)", text : "Best Movie Ever" } ]} 26. // create index on nested documents: >db.posts.ensureIndex({"comments.author": 1}) >db.posts.nd({comments.author:Fred}) Secondary Index 27. Deploying MongoDB 28. Deploying MongoDB Primary Read/Write 29. Deploying MongoDB Primary Secondary Read/Write Replication 30. Setting Up MongoDB Primary Secondary Read/Write SecondaryforBackup Replication Replication 31. Setting Up MongoDB Primary Secondary Read/Write SecondaryforBackup Read Replication Replication 32. Setting Up MongoDB Primary Secondary Read/Write SecondaryforBackup Read Replication Replication Replicaset 33. Read Scalability : Replication write read ReplicaSet1 Primary Secondary Secondary 34. Write Scalability: Sharding write read ReplicaSet1 Primary Secondary Secondary ReplicaSet2 Primary Secondary Secondary ReplicaSet3 Primary Secondary Secondary keyrange 0..30 keyrange 31..60 keyrange 61..100 35. Monitoring We like Munin .. ... but other frameworks work as well Primary function: Measure stats over time Tells you what is going on with your system 36. MongoDB makes building applications easy Designed a Blog Schema Evolved the Schema Deployed MongoDB Scale MongoDB 37. MongoDB makes building applications easy Map / Reduce Capped Collections Tail-able Cursors Geo Indexing .. and much more ! .. 38. @mongodb conferences,appearances,andmeetups http://www.10gen.com/events http://bit.ly/mongoG Facebook|Twitter|LinkedIn http://linkd.in/joinmongo download at mongodb.org Were Hiring ! roger@10gen.com