Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MongoDB Roadmap

MongoDB Roadmap

Presented at MongoDB Bangalore 2012

Sridhar Nanjundeswaran

October 26, 2012
Tweet

More Decks by Sridhar Nanjundeswaran

Other Decks in Technology

Transcript

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

    View full-size slide

  2. 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

    View full-size slide

  3. 2.2 Overview

    View full-size slide

  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/

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  7. {
    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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  13. 2.4 and Beyond

    View full-size slide

  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)

    View full-size slide

  15. Ongoing Work
    • Collection / Extent level locking
    • Field level authorization
    • Auditing
    • Full-text query

    View full-size slide

  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/

    View full-size slide