FerretDB 0.3 est déjà sorti, découvrez les nouveautés de cette modernisation de MangoDB

Il y a quelques semaines nous partageons ici sur le blog l'actualité de changer le nom du projet MangoDB qui vous permet de remplacer le SGBD orienté document de MongoDB par PostgreSQL sans apporter de modifications au code de l'application.

Le nouveau nom du projet est FerretDB et récemment la sortie de la version 0.3 du projet a été annoncée. La version 0.3 de FerretDB introduit la commande findAndModify, qui modifie un document mais renvoie sa version d'origine, ainsi que des opérateurs de mise à jour des champs, entre autres.

Pour ceux qui ne connaissent pas encore FerretDB, sachez que ceci est implémenté comme un serveur proxy qui traduit les appels à MongoDB en requêtes SQL vers PostgreSQL, qui vous permet d'utiliser PostgreSQL comme stockage réel.

Le besoin de migration peut survenir dans le cadre de la transition de MongoDB vers une licence SSPL non libre, qui est basée sur la licence AGPLv3, mais n'est pas ouverte, car elle contient une exigence discriminatoire de fournir sous la licence SSPL non seulement l'application code lui-même, mais aussi les codes sources de tous les composants impliqués dans la fourniture du service cloud.

Le principal public cible de FerretDB est les utilisateurs qui n'utilisent pas les fonctionnalités avancées de MongoDB dans leurs applications, mais souhaitent utiliser une pile logicielle complètement ouverte.

Au stade actuel de développement, FerretDB ne prend toujours en charge qu'une partie des fonctionnalités de MongoDB qui sont le plus souvent utilisés dans les applications typiques. À l'avenir, ils prévoient d'obtenir une prise en charge complète des pilotes pour MongoDB et de fournir la possibilité d'utiliser FerretDB en remplacement transparent de MongoDB.

MongoDB occupe une niche entre les systèmes rapides et évolutifs qui fonctionnent sur des données clé/valeur et les SGBD relationnels fonctionnels et faciles à interroger.

MongoDB prend en charge le stockage de documents dans un format de type JSON, dispose d'un langage assez flexible pour générer des requêtes, peut créer des index pour divers attributs stockés, fournit un stockage efficace des grands objets binaires, prend en charge la journalisation des opérations pour modifier et ajouter des données à la base de données, il peut fonctionner selon le paradigme Map/Reduce, il prend en charge la réplication et la construction de configurations tolérantes aux pannes.

En raison des différences dans la sémantique des fonctions json PostgreSQL et MongoDB, il y avait un écart dans le comportement lors de la comparaison et de la commande de différents types. Pour résoudre ce problème, un échantillon de données redondantes est maintenant extrait de PostgreSQL et le filtrage du résultat se fait côté FerretDB, ce qui a permis de répéter le comportement de MongoDB dans la plupart des situations.

Principales nouveautés de FerretDB 0.3

Comme mentionné au début, la nouvelle version de FerretDB 0.3 se distingue par l'introduction de la commande findAndModify, qui modifie un document, mais renvoie sa version d'origine.

D'autres changements qui ressortent sont que la gestion du zéro négatif a été améliorée, ainsi que la prise en charge de la commande de types de données scalaires a été ajoutée.

Sont également mis en évidence nouveaux opérateurs de mise à jour de champs implémentés : $inc et $set, plus la prise en charge de la commande de types de données scalaires a été ajoutée.

D'autre part, il est mentionné que diverses améliorations ont été apportées pour la gestion des versions PostgreSQL et MongoDB.

Par ailleurs, il est également à noter que le test incorrect pour l'opérateur $mod a été corrigé, également que le test est émis sur tous les systèmes d'exploitation ARM64 et qu'une plus grande visibilité a été ajoutée pour les niveaux de journalisation des erreurs de routeur/proxy.

Des autres changements qui se démarquent de cette nouvelle version:

  • Mettre à jour les CODEOWNERS
  • Synchroniser les contrôleurs factices et pg
  • Renommez OP_*constants en OpCode*constants
  • Améliorer gopkg.in/yaml.v3
  • Bump gopkg.in/yaml.v3 dans les outils
  • Créer un chemin de type
  • Panique dans les valeurs de commande inattendues
  • Ajouter des commentaires aux fonctions et aux variables
  • Supprimer le code mort

Enfin si vous souhaitez en savoir plus, vous pouvez vérifier les détails dans le lien suivant.


Le contenu de l'article adhère à nos principes de éthique éditoriale. Pour signaler une erreur, cliquez sur c'est par ici !.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.