2. Recent Release History
1.8 2.0 2.2 2.4
March ‘11 Sept ‘11 Aug ‘12 winter ‘12
Journaling Index enhancements Aggregation
Sharding and to improve size and Framework
Replica set performance Multi-Data Center
enhancements Authentication with Deployments
Spherical geo sharded clusters Improved
search Replica Set Performance and
Enhancements Concurrency
Concurrency
improvements
4. 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/
5. Yielding and DB Locking
• Improved yielding on page fault
• Breaking down the global level lock
– Lock per Database in 2.2
– Lock per Collection post 2.2
6. 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
7. Example – For each "tag", list
the authors
{
title : "my tech blog" ,
author : "bob" ,
tags : [ "fun" , "good" , "tech" ] ,
}
{
title : "cool tech" ,
author : "jim" ,
tags : [ "awesome" , "tech" ] ,
}
10. 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 } )
11. 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"
);
12. Read Preferences
• Mode
– PRIMARY, PRIMARY_PREFERRED
– SECONDARY, SECONDARY_PREFERRED
– NEAREST
• Tag Sets
– Uses Replica Set tags
– Passed Tag is used to find matching members
14. 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)
15. Ongoing Work
• Collection / Extent level locking
• Field level authorization
• Auditing
• Full-text query
16. What can I do?
• MongoDB is a community driven product
– Use the product
– Log feature requests
– Vote for existing features
• Join your local meetup
– http://www.meetup.com/MongoDB-Bangalore-User-
Group/