MongoDB Roadmap

mongodb 2,175 views 14 slides Dec 12, 2012
Slide 1
Slide 1 of 14
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14

About This Presentation

No description available for this slideshow.


Slide Content

Technical Director, 10gen Alvin Richards # MongoDBTokyo Roadmap

Recent Release History 2.2 Aug ‘ 12 2.4 W inter ‘13 2.0 Sept ‘ 11 1.8 March ‘ 11 Journaling Sharding and Replica set enhancements Spherical geo search Index enhancements to improve size and performance Authentication with sharded clusters Replica Set Enhancements Concurrency improvements Aggregation Framework Multi-Data Center Deployments Improved Performance and Concurrency

2.2 Overview

2.2 Release August 2012 Concurrency: yielding + db level locking New aggregation framework TTL Collections Improved free list implementation Tag aware sharding Read Preferences http:// docs.mongodb.org /manual/release-notes/2.2 /

Yielding and DB Locking Improved yielding on page fault Breaking down the global level lock Lock per Database in 2.2

Aggregation Framework Pipeline model (a bit like unix pipes) Like a "group by" Operators $project, $group, $match, $limit, $skip, $unwind, $sort Expressions Logical Expressions: $and, $not, $or, $ cmp ... Math Expressions: $add, $divide, $mod ... String Expressions: $ strcasecmp , $ substr , $ toLower ... Date/Time Expressions: $ dayOfMonth , $hour... Multi-Expressions: $ ifNull , $ cond Use Cases: Real-time / inline analytics

{ title : "my tech blog" , author : "bob" , tags : [ "fun" , "good" , "tech" ] , } { title : "cool tech" , author : " jim " , tags : [ "awesome" , "tech" ] , } Example – For each "tag", list the authors

db.blogs.aggregate ( { $project : { author : 1, tags : 1, } }, { $unwind : "$tags" }, { $group : { _id : { tags : "$tags" }, authors : { $ addToSet : "$author" } } } ); Aggregate Command

{ "result" : [ { "_id" : { "tags" : "tech" }, "authors" : [ " jim ", "bob" ] }, Results

Time to Live (TTL) Auto expire data out of a collection Must be on a date datatype Single value is evaluated Use Cases: data retention, cache expiration db.events.ensureIndex ( { "timestamp": 1 }, { expireAfterSeconds : 3600 } )

Tag Aware Sharding Distribute data based on a Tag Use Cases: Locality for Data by Data Center sh.addShardTag ("shard0000", "dc- emea ") sh.addTagRange (" mydb.users ", { country: " uk "}, { country: " ul "}, "dc- emea " ); sh.addTagRange (" mydb.users ", { country: "by"},{ country: " bz "}, "dc- emea " );

Read Preferences Mode PRIMARY , PRIMARY_PREFERRED SECONDARY , SECONDARY_PREFERRED NEAREST Tag Sets Uses Replica Set tags Passed Tag is used to find matching members

2.4 and Beyond

2.4 Highlights Security SASL , Kerberos, Additions to privileges and auditing Hash-based Sharding Geospatial Indexing: query intersecting polygons Aggregation framework: faster and more features V8, background secondary indexing, replica set flapping Distribute non- sharded collections throughout cluster MMS running in your own data center (separate)
Tags