0
Building a Cross Channel Content Delivery         Platform with MongoDB     Webinar Building a Cross Channel Content Deliv...
10gen Overview                     10gen is the                     company                     behind                    ...
10gen Overview                     170+                     employees                 3
10gen Overview                     500+                     customers                 4
10gen Overview                     $73M                     in funding from                     top investors             ...
Leading Organizations Rely onMongoDB                  6
Media Company Change         Application           RDBMS               7
Media Company Change         Application           RDBMS               8
Media Company Change         Application           RDBMS               9
Media Company Change         Application           RDBMS               10
Media Company Change         Application           RDBMS               11
So What?1. Slow onboard of each channeldue to complex schema changes.2. Unable to scale database to  understand our custom...
Schema1. Slow onboard of each channeldue to complex schema changes.               13
Example?                                  Real Twitter {     "_id" : ObjectId("4f47b268fb1c80e141e9888c"),     "user" : { ...
Media Company Change   JSON          Application            RDBMS                15
Media Company Change          JSON     JSON    JSON   JSON           Application                    SQL!                 R...
Media Company Change          JSON   JSON    JSON   JSON           Application                 JSON                 17
Example Trackerclick = {user: "Chris",      date: new Date(),      url: "http://www.mongodb.org"}> db.tracker.save(click) ...
Example Trackerdb.click.update(  {url: "http://www.mongodb.org" },  {$push: {tags: [“MongoDB”, “NoSQL”]}})                ...
Example Trackerclick = {user: "Chris",      date: new Date(),      url: "http://www.mongodb.org",      tags : [“MongoDB”, ...
Now we can answer...What are our customers doing?                21
Example - twitter                                  Real Twitter {     "_id" : ObjectId("4f47b268fb1c80e141e9888c"),     "u...
Example - twitterdb.tweets.aggregate(  {$match:    {"user.friends_count": { $gt: 0 },     "user.followers_count": { $gt: 0...
Example - twitterdb.tweets.aggregate(  {$match:    {"user.friends_count": { $gt: 0 },          Predicate     "user.followe...
Example - twitterdb.tweets.aggregate(  {$match:    {"user.friends_count": { $gt: 0 },                                     ...
Example - twitterdb.tweets.aggregate(  {$match:                                        Predicate    {"user.friends_count":...
Example - twitter{     "result"   :[        {              "_id" : "Far Far Away",              "friends" : 344,          ...
Scale! Let’s scale our database tounderstand ALL our customer!              28
Sharding - Range distribution   sh.shardCollection("test.tweets", {_id: 1})   shard01                     shard02         ...
Sharding - Range distribution     a-i        j-r        s-z   shard01    shard02    shard03                30
Sharding - Splits     a-i        ja-jz      s-z   shard01      k-r              shard02    shard03                    31
Sharding - Splits     a-i        ja-ji      s-z   shard01      ji-js              shard02    shard03               js-jw  ...
Sharding - Auto Balancing    a-i        ja-ji          s-z               ji-js   shard01   shard02        shard03    js-jw...
Sharding - Auto Balancing    a-i        ja-ji          s-z  shard01      ji-js             shard02        shard03   js-jw ...
PerformanceImprove user experience due to    increased performance               35
MemoryMongoDB revolves around memory         mapped files
Operating System map files on theFilesystem to Virtual Memory• 200 gigs of MongoDB files creates 200 gigs  of virtual memory...
A Few Words on OS Choice• For production: Use a 64 bit OS and a 64 bit  MongoDB Build  – 32 Bit has a 2 gig limit; imposed...
Sharding for caching              96 GB Mem              3:1 Data/Mem                 a-i300 GB Data                j-r   ...
Aggregate Horizontal Resources              96 GB Mem      96 GB Mem      96 GB Mem              1:1 Data/Mem   1:1 Data/M...
Sharding Features• Shard data without no downtime• Automatic balancing as data is written• Commands routed (switched) to c...
Summary
Relational Database Challenges Data Types                              Agile Development • Unstructured data              ...
mongoDB AdoptionResource           User Data Management              44
Global MongoDB Community41,000+Monthly Unique Downloads24,000+Online Education Registrants12,000+MongoDB User Group Member...
Leading Organizations Rely onMongoDB                  46
Questions• 10Gen Services  –   Development Support  –   Consultancy  –   TAM  –   Production Support• Free online MongoDB ...
Building a Cross Channel Content Delivery Platform with MongoDB
Upcoming SlideShare
Loading in...5
×

Building a Cross Channel Content Delivery Platform with MongoDB

943

Published on

Interested in learning more about MongoDB? Sign up for MongoSV, the largest annual user conference dedicated to MongoDB. Learn more at MongoSV.com

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
943
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
24
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • Note: Growth refers to year-to-date revenue based on our fiscal years for 2011 and 2012, i.e., it compares Feb-Oct 2011 (calendar year) to Feb-Oct 2012 (calendar). These figures are unaudited and subject to change.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Spend time on this slide, even whiteboard the different scenarios for routed versus scatter gather versus distributed sort merge\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "Building a Cross Channel Content Delivery Platform with MongoDB"

    1. 1. Building a Cross Channel Content Delivery Platform with MongoDB Webinar Building a Cross Channel Content Delivery Platform with MongoDB will begin at 6:00 AM EDT / 4:00 AM PDT / 11:00 AM UTC Audio should start immediately when you log into the event via Audio Broadcast. You will need a Voip headset and reliable internet connection for Audio Broadcast. If you are having issues connecting, please dial 1-877-668-4493; Access code: 666 687 901. There is a Q&A following the webinar. A recording of the webinar will be available 24 hours after the event is complete.
    2. 2. 10gen Overview 10gen is the company behind MongoDB – the leading NoSQL database 2
    3. 3. 10gen Overview 170+ employees 3
    4. 4. 10gen Overview 500+ customers 4
    5. 5. 10gen Overview $73M in funding from top investors 5
    6. 6. Leading Organizations Rely onMongoDB 6
    7. 7. Media Company Change Application RDBMS 7
    8. 8. Media Company Change Application RDBMS 8
    9. 9. Media Company Change Application RDBMS 9
    10. 10. Media Company Change Application RDBMS 10
    11. 11. Media Company Change Application RDBMS 11
    12. 12. So What?1. Slow onboard of each channeldue to complex schema changes.2. Unable to scale database to understand our customer!3. Reduce in user experience due to performance 12
    13. 13. Schema1. Slow onboard of each channeldue to complex schema changes. 13
    14. 14. Example? Real Twitter { "_id" : ObjectId("4f47b268fb1c80e141e9888c"), "user" : { "friends_count" : 73, "location" : "Brazil", "screen_name" : "Bia_cunha1", "name" : "Beatriz Helena Cunha", "followers_count" : 102, } } 14
    15. 15. Media Company Change JSON Application RDBMS 15
    16. 16. Media Company Change JSON JSON JSON JSON Application SQL! RDBMS 16
    17. 17. Media Company Change JSON JSON JSON JSON Application JSON 17
    18. 18. Example Trackerclick = {user: "Chris", date: new Date(), url: "http://www.mongodb.org"}> db.tracker.save(click) 18
    19. 19. Example Trackerdb.click.update( {url: "http://www.mongodb.org" }, {$push: {tags: [“MongoDB”, “NoSQL”]}}) 19
    20. 20. Example Trackerclick = {user: "Chris", date: new Date(), url: "http://www.mongodb.org", tags : [“MongoDB”, “NoSQL”]} 20
    21. 21. Now we can answer...What are our customers doing? 21
    22. 22. Example - twitter Real Twitter { "_id" : ObjectId("4f47b268fb1c80e141e9888c"), "user" : { "friends_count" : 73, "location" : "Brazil", "screen_name" : "Bia_cunha1", "name" : "Beatriz Helena Cunha", "followers_count" : 102, } } 22
    23. 23. Example - twitterdb.tweets.aggregate( {$match: {"user.friends_count": { $gt: 0 }, "user.followers_count": { $gt: 0 } } }, {$project: { location: "$user.location", friends: "$user.friends_count", followers: "$user.followers_count" } }, {$group: {_id: "$location", friends: {$sum: "$friends"}, followers: {$sum: "$followers"} } }); 23
    24. 24. Example - twitterdb.tweets.aggregate( {$match: {"user.friends_count": { $gt: 0 }, Predicate "user.followers_count": { $gt: 0 } } }, {$project: { location: "$user.location", friends: "$user.friends_count", followers: "$user.followers_count" } }, {$group: {_id: "$location", friends: {$sum: "$friends"}, followers: {$sum: "$followers"} } }); 24
    25. 25. Example - twitterdb.tweets.aggregate( {$match: {"user.friends_count": { $gt: 0 }, Predicate "user.followers_count": { $gt: 0 } } }, {$project: Parts of the { location: "$user.location", friends: "$user.friends_count", document you followers: "$user.followers_count" want to project } }, {$group: {_id: "$location", friends: {$sum: "$friends"}, followers: {$sum: "$followers"} } }); 25
    26. 26. Example - twitterdb.tweets.aggregate( {$match: Predicate {"user.friends_count": { $gt: 0 }, "user.followers_count": { $gt: 0 } } }, {$project: { location: "$user.location", Parts of the friends: "$user.friends_count", document you followers: "$user.followers_count" want to project } }, {$group: {_id: "$location", friends: {$sum: "$friends"}, Function to apply followers: {$sum: "$followers"} } to the result set }); 26
    27. 27. Example - twitter{ "result" :[ { "_id" : "Far Far Away", "friends" : 344, "followers" : 789 },... ], "ok" : 1} 27
    28. 28. Scale! Let’s scale our database tounderstand ALL our customer! 28
    29. 29. Sharding - Range distribution sh.shardCollection("test.tweets", {_id: 1}) shard01 shard02 shard03 29
    30. 30. Sharding - Range distribution a-i j-r s-z shard01 shard02 shard03 30
    31. 31. Sharding - Splits a-i ja-jz s-z shard01 k-r shard02 shard03 31
    32. 32. Sharding - Splits a-i ja-ji s-z shard01 ji-js shard02 shard03 js-jw jz-r 32
    33. 33. Sharding - Auto Balancing a-i ja-ji s-z ji-js shard01 shard02 shard03 js-jw js-jw jz-r jz-r 33
    34. 34. Sharding - Auto Balancing a-i ja-ji s-z shard01 ji-js shard02 shard03 js-jw jz-r 34
    35. 35. PerformanceImprove user experience due to increased performance 35
    36. 36. MemoryMongoDB revolves around memory mapped files
    37. 37. Operating System map files on theFilesystem to Virtual Memory• 200 gigs of MongoDB files creates 200 gigs of virtual memory• OS controls what data in RAM• When a piece of data isnt found in memory – OS goes to disk to fetch the data• Indexes are part of the Regular Database files• Deployment Trick: Pre-Warm your Database (PreWarming your cache) to prevent cold
    38. 38. A Few Words on OS Choice• For production: Use a 64 bit OS and a 64 bit MongoDB Build – 32 Bit has a 2 gig limit; imposed by the operating systems for memory mapped files – Clients can be 32 bit• MongoDB Supports (little endian only) – Linux, FreeBSD, OS X (on Intel, not PowerPC) – Windows – Solaris (Intel only, Joyent offers a cloud service which works for Mongo)
    39. 39. Sharding for caching 96 GB Mem 3:1 Data/Mem a-i300 GB Data j-r shard01 s-z 300 GB 39
    40. 40. Aggregate Horizontal Resources 96 GB Mem 96 GB Mem 96 GB Mem 1:1 Data/Mem 1:1 Data/Mem 1:1 Data/Mem a-i j-r s-z300 GB Data j-r shard02 shard03 s-z 100 GB 100 GB 100 GB 40
    41. 41. Sharding Features• Shard data without no downtime• Automatic balancing as data is written• Commands routed (switched) to correct node • Inserts - must have the Shard Key • Updates - can have the Shard Key • Queries • With Shard Key - routed to nodes • Without Shard Key - scatter gather • Indexed / Sorted Queries • With Shard Key - routed in order • Without Shard Key - distributed sort merge 41
    42. 42. Summary
    43. 43. Relational Database Challenges Data Types Agile Development • Unstructured data • Iterative • Semi-structured data • Short development cycles • Polymorphic data • New workloadsVolume of Data New Architectures• Petabytes of data • Horizontal scaling• Trillions of records • Commodity servers• Tens of millions of queries per • Cloud computing second 43
    44. 44. mongoDB AdoptionResource User Data Management 44
    45. 45. Global MongoDB Community41,000+Monthly Unique Downloads24,000+Online Education Registrants12,000+MongoDB User Group Members10,000+Annual MongoDB Days Attendees
    46. 46. Leading Organizations Rely onMongoDB 46
    47. 47. Questions• 10Gen Services – Development Support – Consultancy – TAM – Production Support• Free online MongoDB training – Develop – Deploy – Classes start Oct. 2012 47
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×