Lanzamiento de FerretDB 0.3, una implementación de MongoDB sobre la base de la base de datos PostgreSQL

Se ha publicado la versión 0.3 del proyecto FerretDB, que permite reemplazar la base de datos orientada a documentos MongoDB por PostgreSQL sin necesidad de modificar el código de las aplicaciones. FerretDB se implementa como un servidor proxy que traduce las solicitudes de MongoDB en consultas SQL para PostgreSQL, lo que permite usar PostgreSQL como el almacenamiento real. El código está escrito en Go y se distribuye bajo la licencia Apache 2.0.

La necesidad de migración puede surgir debido al cambio de MongoDB a una licencia no libre, SSPL, que se basa en la licencia AGPLv3, pero no es abierta, ya que contiene el requisito discriminatorio de entregar no solo el código de la aplicación misma, sino también el código fuente de todos los componentes involucrados en la provisión del servicio en la nube bajo la licencia SSPL.

El público objetivo principal de FerretDB son los usuarios que no utilizan las funciones avanzadas de MongoDB en sus aplicaciones, pero desean un stack de software completamente abierto. En la etapa actual de desarrollo, FerretDB solo admite parte de las funcionalidades de MongoDB que son más comúnmente utilizadas en aplicaciones estándar. En el futuro, se planea alcanzar la plena compatibilidad con los controladores de MongoDB y ofrecer la posibilidad de utilizar FerretDB como un reemplazo transparente de MongoDB.

MongoDB ocupa un nicho entre sistemas rápidos y escalables que operan con datos en formato clave/valor, y bases de datos relacionales, que son funcionales y cómodas para la creación de consultas. MongoDB es compatible con el almacenamiento de documentos en formato similar a JSON, tiene un lenguaje bastante flexible para la creación de consultas, puede crear índices para diferentes atributos almacenados, gestiona de manera eficiente el almacenamiento de grandes objetos binarios, soporta el registro de operaciones de modificación y adición de datos en la base de datos, puede operar de acuerdo con la paradigma Map/Reduce, y ofrece replicación y configuraciones de alta disponibilidad.

En la versión 0.3 de FerretDB se ha implementado el comando findAndModify que modifica un documento, pero devuelve su versión original. Se han implementado los operadores de actualización de campos — $inc y $set. Se ha añadido soporte para la clasificación de tipos de datos escalares.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster