Couldn’t make MongoDB Europe in London this year?
Don’t worry, here are the key takeaways!
Only the second year of MongoDB Europe, yet the atmosphere is buzzing and charged up with MongoDB enthusiasts from around Europe flocking in to know and learn more. MongoDB are showing just why they are leading the NoSQL popularity contest with an ever-increasing number of users and followers coming to hear about the latest advancements. One of those, the MongoDB 3.6 release brings a number of features that will help developers, DBAs and minimise complexities for the network and infrastructure engineers. Here’s my key takeaways on the event and latest release.
Retryable writes for AlwaysOn write availability
What happens when your program tries to send an insert/update/delete to the server and gets hit by a brief network glitch or re-election? What happens to that write in flight? It’s not always possible to know whether the server received the write before the network error. The new feature takes away the complexity of implementing custom client-side code to handle temporary system failures from the application to the database.<quote>”the MongoDB driver can automatically retry writes in the event of failure, while the MongoDB server enforces exactly-once processing semantics.”
Change streams to build reactive, real-time applications
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. This allows for seamless data movement across distributed databases, making it simple to stream data changes and trigger actions wherever they are needed.
Fully expressive array updates for complex manipulations in a single operation
A new feature to allow more flexibility in data modelling. This helps to perform complex array manipulations against matching elements of an array even if the elements are embedded in nested arrays. All this can now be done in a single atomic update operation.
Enhancements to query language and aggregation pipeline
There’s now some new aggregation operators and aggregation expressions that enables writing richer, expressive (yet uncomplicated) queries, such as referencing of other fields in the same document when executing comparison queries, and powerful expressions such as multiple JOIN conditions. Improvements also include support for timezone-aware aggregations, conversion of objects to arrays and arrays to objects, and many more.
MongoDB 3.4 added linearizable reads. Now, MongoDB 3.6 introduces “Causal Consistency” for consistent reads. Reading from a secondary node has been unpredictable until now as there would be no guarantee that the secondary node has replicated the write from the primary. Therefore, applications were “forced” to read from the primary if they required consistent results. The addition of causal consistency in MongoDB 3.6 changes that totally.
If the network has been the bottleneck for some of your applications running on bandwidth constrained machines, the wire protocol compression of network traffic between the client and the database will not only save the bandwidth but also provide major performance gains and reduce costs.
MongoDB 3.6 comes with JSON Schema, extends the capabilities of document validation, which was initially introduced in MongoDB 3.2.
There’s also tons more goodies:
– Along with some security enhancements, MongoDB 3.6 will have “localhost” connection by default turned off, to prevent accidentally exposing data to the internet.
– BI Connector 2.0 is also coming soon.
– Brand new addition of MongoDB Charts, which is also on its way, will make data more meaningful with visualisation capabilities.
– MongoDB Atlas, the fully managed DBaaS, has been recently enhanced with Performance Advisor, Cross Region capabilities and more tiers. The roadmap of new features, including Full CRUD Support, Auditing, LDAP/KMIP integration and Cross Cloud and Zone sharding capabilities makes this an exciting area to watch out for!
– Along with that comes enhancements to Ops/Cloud Manager.