Document-oriented DBMS MongoDB 5.0 available

The release of the document-oriented DBMS MongoDB 5.0 is presented, which occupies a niche between fast and scalable systems that operate data in key/value format, and relational DBMSs that are functional and easy to form queries. The MongoDB code is written in C++ and distributed under the SSPL license, which is based on the AGPLv3 license, but is not open, as it contains a discriminatory requirement to deliver under the SSPL license not only the application code itself, but also the source code of all components involved in the provision of the cloud service .

MongoDB supports storing documents in a JSON-like format, has a fairly flexible language for generating queries, can create indexes for various stored attributes, efficiently provides storage of large binary objects, supports logging of operations to change and add data to the database, can work in accordance with the paradigm Map/Reduce, supports replication and building fault-tolerant configurations.

MongoDB has built-in sharding tools (distributing a data set across servers based on a specific key), in combination with replication, allowing you to build a horizontally scalable storage cluster that does not have a single point of failure (failure of any node does not affect the operation of the database), automatic failover and load transfer from a failed node. Expanding a cluster or converting one server into a cluster is done without stopping the database by simply adding new machines.

Features of the new release:

  • Added collections for data in the form of a time series (time series collections), optimized for storing slices of parameter values ​​recorded at certain intervals (time and a set of values ​​corresponding to this time). The need to store such data arises in monitoring systems, financial platforms, and systems for polling sensor states. Working with time series data is carried out as with ordinary document collections, but the indexes and storage method for them are optimized taking into account the time reference, which can significantly reduce disk space consumption, reduce delays in executing queries and enable real-time data analysis.

    MongoDB treats such collections as writable, non-materialized views built on internal collections that, when inserted, automatically group time series data into an optimized storage format. In this case, each time-based record is treated as a separate document when requested. Data is automatically ordered and indexed by time (no need to explicitly create time indexes).

  • Added support for window operators (analytical functions) that allow you to perform actions with a specific set of documents in the collection. Unlike aggregate functions, window functions do not collapse the grouped set, but rather aggregate based on the contents of a “window” that includes one or more documents from the result set. To manipulate a subset of documents, a new $setWindowFields stage is proposed, with which you can, for example, determine the differences between two documents in a collection, calculate sales rankings, and analyze information in complex time series.
  • Added support for API versioning, which allows you to bind an application to a specific API state and eliminate the risks associated with a possible violation of backward compatibility when migrating to new DBMS releases. API versioning separates the application life cycle from the DBMS life cycle and allows developers to make changes to the application when there is a need to use new features, and not when migrating to a new version of the DBMS.
  • Added support for the Live Resharding mechanism, which allows you to change the shard keys used for segmentation on the fly without stopping the DBMS.
  • The possibilities for encrypting fields on the client side have been expanded (Client-Side Field Level Encryption). It is now possible to reconfigure audit filters and rotate x509 certificates without stopping the DBMS. Added support for configuring cipher suite for TLS 1.3.
  • A new command line shell, MongoDB Shell (mongosh), is proposed, which is being developed as a separate project, written in JavaScript using the Node.js platform and distributed under the Apache 2.0 license. MongoDB Shell makes it possible to connect to the DBMS, change settings and send queries. Supports smart autocompletion for entering methods, commands and MQL expressions, syntax highlighting, contextual help, parsing error messages and the ability to expand functionality through add-ons. The old "mongo" CLI wrapper has been deprecated and will be removed in a future release.
    Document-oriented DBMS MongoDB 5.0 available
  • New operators have been added: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate and $rand.
  • Ensures that indexes are used when using the $eq, $lt, $lte, $gt and $gte operators within the $expr expression.
  • The aggregate, find, findAndModify, update, delete commands and the db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() and db.collection.remove() methods now support the “let” option to define a list of variables that make commands more readable by separating variables from the request body.
  • Find, count, distinct, aggregate, mapReduce, listCollections, and listIndexes operations no longer block if an operation that takes an exclusive lock on a document collection is running in parallel.
  • As part of an initiative to remove politically incorrect terms, the isMaster command and db.isMaster() method have been renamed hello and db.hello().
  • The release numbering scheme has been changed and a transition has been made to a predictable release schedule. Once a year there will be a significant release (5.0, 6.0, 7.0), every three months intermediate releases with new features (5.1, 5.2, 5.3) and, as necessary, corrective updates with bug fixes and vulnerabilities (5.1.1, 5.1.2 , 5.1.3). Interim releases will build functionality for the next major release, i.e. MongoDB 5.1, 5.2, and 5.3 will provide new features for the release of MongoDB 6.0.

Source: opennet.ru

Add a comment