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
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)