MongoDB Europe 2016

Yesterday, I went to the annual MongoDB Europe conference in London. It was a good chance to catch up on the new features in MongoDB and what other companies are doing with it.

img_20161115_125752

MongoDB’s CEO Dev Ittycheria opened with some success stories of using MongoDB and talked about how Baidu, Barclays and NowTv have used MongoDB to scale their solutions. He also introduced Atlas which is their database-as-a-service platform.

img_20161115_092613

Lots of of companies using MongoDB.

Mongo 3.4 preview

Next CTO Eliot Horowitz went through some of the features already introduced in 3.2 such as: WiredTiger, MongoDB aggregation framework and document validation.

He gave an overview of some of the new features coming in MongoDB 3.4:

  • Improved performance.
  • Collations – character encoding – accents in Swedish.
  • Improved BI connector to Tableau and other SQL based platforms.
  • Read Only Views – Giving users access to aggregated views based on roles.
  • Faceted searching to give user more intelligent results.
  • Zone Sharding – store shards based on geo-location.
  • Store shards on SSD/HD based on date for long term storage.

There was a nice demo of Compass which is a GUI for MongoDB. I use MongoChef at Sandtable which works well, but it was good to see an official GUI from MongoDB.

Some of the features in demo were:

  • Finding bottlenecks by looking for slow operations.
  • Seeing missing indexes and easily adding them.
  • Automatic drawing of GeoJSON data.

There was also a demo of Atlas and how to create a cluster and scale it.

Keynote

The keynote was by scientist Brian Cox. He talked about the Sloan Digital Sky Service, and showed a nice visualisation of the position of the galaxies. He explained the theory of inflation, the big bang and how the sun will eventually run out of fuel. It was a fascinating talk, it’s a shame our Data Scientists weren’t there because they are huge fans.

The datasets are available here.

Breakout Sessions

The rest of the conference was broken into breakout sessions.  These are some of the sessions that I enjoyed the most.

Debugging MongoDB Performance

Asya Kamsky, Lead Product Manager, MongoDB

img_20161115_104434

This was the first session I went to. Asya demoed some useful techniques on how to diagnose Mongo performance problems, both in real-time and afterwards.

She went through some of the commands that she uses to diagnose issues such as db.isMaster, rs.conf, rs.Status, mongostat and mongotop. Some of the output from these commands was quite difficult to read and interpret so I was glad to hear that the Compass GUI tool also allows use of some of these features.

She also demoed Mtools which is a set of tools to parse log files and display the results visually. She gave a real world example of a client that had a slow performing database and how she used the tools above find the cause. It turns out it was somebody at the company who had access to the prod database, and had performed a long running query and assumed that closing the mongo shell also stops the query. The query kept running and should have been stopped using the db.currentOp() and db.killOp() commands.

img_20161115_110722

https://github.com/rueckstiess/mtools

Star in a Reasonably Priced Car – Which Driver is Best?

John Page, Consulting Engineer, MongoDB

img_20161115_113830

This was a talk on the performance differences between drivers for different languages. C was the the fastest driver for data retrieval, which was unsurprising as it is the lowest level driver and is used to write other drivers. Java and PHP were second and third and then there was a big drop to Node, Python, Go and C#. It was useful to know this to help balance between performance and ease of use depending on the use case.

Also using the PyMongo drivers with C extensions had some significant improvements in performance.

https://docs.opsmanager.MongoDB.com/v1.3/monitoring/tutorial/install-pymongo/

Smart Strategies for Resilient Applications

A. Jesse Jiryu Davis, Staff Software Engineer, MongoDB

img_20161115_123519

This talk was about dealing with network blips and other errors when saving to MongoDB. Jesse went through some bad strategies for handling errors and then showed a way of making operations idempotent. This allowed the code to retry once after an error and still keep the data consistent.

I learnt that the MongoDB driver itself has retry loop. It retries twice in 1 sec for 30 secs so it’s important to make sure that any retry solution doesn’t interfere with it.

The talk is from this article, with code examples: https://emptysqua.re/blog/how-to-write-resilient-MongoDB-applications/

Closing Keynote and Roadmap

Eliot Horowitz, CTO and Co-founder, MongoDB

In the closing keynote, Eliot talked about some of the features in the roadmap such as multi-document transactions, and tools for importing data into Atlas.

The Mongo University has a course for the upcoming release on MongoDB 3.4: https://university.MongoDB.com/courses/M034/about

img_20161115_175212

Overall, I enjoyed going to MongoDB Europe.  The talks were high quality and it was a well organised conference. I’m looking forward to the upcoming features, and some of the tools presented such as Compass and Mtools that will be useful in working with MongoDB.

Leave a comment

Please prove that you are human: