2012 mongo db_bangalore_roadmap_new

16
[email protected], @snanjund October 26, 2012 Sridhar Nanjundeswaran, 10gen #mongodbbangalore Roadmap

Transcript of 2012 mongo db_bangalore_roadmap_new

Page 1: 2012 mongo db_bangalore_roadmap_new

[email protected], @snanjund

October 26, 2012

Sridhar Nanjundeswaran, 10gen

#mongodbbangalore

Roadmap

Page 2: 2012 mongo db_bangalore_roadmap_new

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

2.2 Overview

Page 4: 2012 mongo db_bangalore_roadmap_new

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

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

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

{

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

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

{

"result" : [

{

"_id" : {

"tags" : "tech"

},

"authors" : [

"jim",

"bob"

]

},

Results

Page 10: 2012 mongo db_bangalore_roadmap_new

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

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

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

2.4 and Beyond

Page 14: 2012 mongo db_bangalore_roadmap_new

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

Ongoing Work

• Collection / Extent level locking

• Field level authorization

• Auditing

• Full-text query