2012 mongo db_bangalore_roadmap_new
TRANSCRIPT
![Page 1: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/1.jpg)
[email protected], @snanjund
October 26, 2012
Sridhar Nanjundeswaran, 10gen
#mongodbbangalore
Roadmap
![Page 2: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/2.jpg)
Recent Release History
2.2
Aug ‘12
2.4
winter ‘12
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
![Page 3: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/3.jpg)
2.2 Overview
![Page 4: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/4.jpg)
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/
![Page 5: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/5.jpg)
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
![Page 6: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/6.jpg)
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
![Page 7: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/7.jpg)
{
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
![Page 8: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/8.jpg)
db.blogs.aggregate(
{ $project : {
author : 1,
tags : 1,
} },
{ $unwind : "$tags" },
{ $group : {
_id : { tags : "$tags" },
authors : { $addToSet : "$author" }
} }
);
Aggregate Command
![Page 9: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/9.jpg)
{
"result" : [
{
"_id" : {
"tags" : "tech"
},
"authors" : [
"jim",
"bob"
]
},
Results
![Page 10: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/10.jpg)
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 } )
![Page 11: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/11.jpg)
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"
);
![Page 12: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/12.jpg)
Read Preferences
• Mode – PRIMARY, PRIMARY_PREFERRED
– SECONDARY, SECONDARY_PREFERRED
– NEAREST
• Tag Sets – Uses Replica Set tags
– Passed Tag is used to find matching members
![Page 13: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/13.jpg)
2.4 and Beyond
![Page 14: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/14.jpg)
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)
![Page 15: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/15.jpg)
Ongoing Work
• Collection / Extent level locking
• Field level authorization
• Auditing
• Full-text query
![Page 16: 2012 mongo db_bangalore_roadmap_new](https://reader034.vdocuments.us/reader034/viewer/2022052411/556253f6d8b42aa02d8b5217/html5/thumbnails/16.jpg)
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/