Release of FerretDB 0.3, MongoDB implementation based on PostgreSQL DBMS

The release of the FerretDB 0.3 project has been published, which allows you to replace the document-oriented DBMS MongoDB with PostgreSQL without making changes to the application code. FerretDB is implemented as a proxy server that translates calls to MongoDB into SQL queries to PostgreSQL, which allows you to use PostgreSQL as the actual storage. The code is written in Go and distributed under the Apache 2.0 license.

The need for migration may arise in connection with the transition of MongoDB to a non-free SSPL license, which is based on the AGPLv3 license, but is not open, since it contains a discriminatory requirement to provide under the SSPL license not only the application code itself, but also the source codes of all components involved in providing cloud service.

The main target audience for FerretDB are users who do not use MongoDB advanced features in their applications, but want to use a completely open software stack. At the current stage of development, FerretDB still supports only a part of the MongoDB features that are most often used in typical applications. In the future, they plan to achieve full compatibility with drivers for MongoDB and provide the ability to use FerretDB as a transparent replacement for MongoDB.

MongoDB occupies a niche between fast and scalable systems that operate on key/value data and relational DBMSs that are functional and easy to query. 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.

The FerretDB 0.3 release introduces the findAndModify command, which modifies a document but returns its original version. Implemented field update operators β€” $inc and $set. Added support for sorting scalar data types.

Source: opennet.ru

Add a comment