It’s November, time for MongoDB Europe event. For the second consecutive year, London hosted all the MongoDB experts to share what is new and exciting about the most popular NoSQL database in the world. After I missed the event last year, I did not want to miss now. I was very excited to explore the new features, technologies and methodologies with the experts, to learn how to deploy mission-critical applications at scale. But also to connect with the fastest growing database community. As a person that comes with a background from the Operators and Architects perspective, I was more interested in attending sessions where best practices around performance, scale, and healthy maintenance of a MongoDB cluster are discussed. But if you were coming as a Developer, there were many sessions with insight into building applications with MongoDB, from the fundamentals to advanced application design techniques.
The Organizers did a great job. Every attendee was guided through the registration process, breakfast served in the morning, table tennis matches in between the sessions, hangouts with sponsors, lunch in the afternoon and a November Fest beer round at the end. What more can you expect from a one day conference?
To top it off, the presentations were also amazing. The conference kicked off with the keynote session, held by MongoDB CTO, Eliot Horowitz and lots of information on new updates. Some of the most exciting features for MongoDB 3.6. covered during the conference were:
- Fully Expressive Array Updates – the one that the MongoDB user community is most excited about, enables developers to perform complex array manipulations against matching elements of an array, including elements embedded in nested arrays, all in a single update operation.
- Schema Validation – with the JSON Schema standard lets you precisely control document structures, choose the level of validation you require, and decide how exceptions are handled. Combine the agility and flexibility that comes from MongoDB’s dynamic schema with strict data governance enforced across entire collections. While this was introduced in MongoDB 3.2, in the new version there will be new operator $jsonSchema.
- Retryable Writes – This feature moves the complexity of handling temporary system failures from the application to the database. Developers no longer need to implement custom, client-side code — the MongoDB driver can automatically retry writes in the event of failure, while the MongoDB server enforces exactly-once processing semantics.
- Security – MongoDB 3.6 will, by default, reject all network connections to the database unless explicitly configured to allow them by an administrator. Combined with the new IP Whitelisting feature, administrators can configure MongoDB to only accept external connections from approved IP addresses or CIDR ranges that have been explicitly added to the whitelist.
- Change streams – Change streams enable developers to build reactive, real-time, web, mobile, and IoT apps that can view, filter, and act on data changes as they occur in the database. Change Streams enable seamless data movement across distributed databases, making it simple to stream data changes and trigger actions wherever they are needed.
- More Expressive Query Language and Aggregation Pipeline – New aggregation operators and the ability to use aggregation expressions within the query language enable richer queries with less client-side code.
- MongoDB Charts – MongoDB is working on it’s own solution for BI, MongoDB charts. This looked amazing during the presentation, it’s not yet released, but you can analyize your data with few clicks, drag and drop on the X,Y axis.
- MongoDB Atlas -The adoption of MongoDB atlas is extremely high. Moving your deployment from on-premise to MongoDB Atlas is very easy and it takes few clicks in the dashboard. The developers are really excited about this and I’ll share my thoughts on this at the end.
- MongoDB Stitch – backend as a service, to reduce the development time. This should save time to developers that don’t want to build complex API for the backend. It’s already integrated with MongoDB Atlas DBaaS.
After the keynotes session ended, there were 4 shards where we could attend the next sessions. What was different from last year, was that there was shard N for more advanced sessions for those who want deeper dive into MongoDB.
I could not wait to start my first session in shard N, Storage improvements in MongoDB 3.6.
Initially the session was scheduled for 45 minutes, but it was extended to 90 because of the huge interest from the audience. During the first part of the session we learned about the improvements made to the wiredTiger storage engine to support scaling to millions of collections. As there are many deployments having hundreds of thousands of collections designed in the mmapv1 era when there were collections level locking, this gives the option for migrating to WiredTiger storage engine and use of benefits like compression and document level locking. In the second part of the session, the discussion was about distributed transactions like including multi-document transactions, point-in-time reads, and the choice of snapshot or read-committed isolation. Eventually MongoDB might be a fully ACID compliant database. Really exciting news!
During the conference, every attendee had the opportunity to chat with a MongoDB expert, the engineers that built MongoDB. I did not miss that opportunity and had an exciting 20 minute discussion on MongoDB sharding, memory usage and indexing techniques. If you ever attend a MongoDB conference, I definitely recommend you book an ‘Ask the Expert’ session.
The next exciting session called ‘It’s 10pm, do you know where your writes are?’ covered the three new features introduced in MongoDB 3.6: retriable writes, a cluster-wide killOp command, and zombie cursor cleanup. These features share a common base, idea called ‘logical session’. This is a very exciting feature, especially for a sharded cluster setup if you want to kill long running query, now you have the option with killOp.
The last session I attended was ‘Illustrating Durability and Elections via Sneakernet’ in shard N. After the linearizable reads feature that was added to MongoDB 3.4 MongoDB 3.6 introduces additional consistency controls: “Causal Consistency” and “Consistent Reads”.
The conference ended with a November Fest beer round.
This was a very successful conference and I enjoyed having the time to interact with the community. In between the sessions I spent some time speaking with the attendees and asking them about their experience with MongoDB. Mainly they were all starting to evaluate MongoDB and its features. The majority were working as developers. I’m not surprised that MongoDB Atlas and MongoDB Stitch are becoming more popular. The developers don’t want to worry about database management, setup and configuration, software patching, monitoring, backups or operating distributed cluster. They need someone else do the job while they can focus on building the application. This opens up the floor for those of us that work in the operations department.