Primeira versão estável do FerretDB, implementação MongoDB baseada em PostgreSQL DBMS

Foi publicado o lançamento do projeto FerretDB 1.0, que permite substituir o DBMS MongoDB orientado a documentos pelo PostgreSQL sem fazer alterações no código do aplicativo. O FerretDB é implementado como um servidor proxy que converte as chamadas para o MongoDB em consultas SQL para o PostgreSQL, o que permite que você use o PostgreSQL como armazenamento real. A versão 1.0 é marcada como a primeira versão estável pronta para uso geral. O código é escrito em Go e distribuído sob a licença Apache 2.0.

O principal público-alvo do FerretDB são usuários que não usam os recursos avançados do MongoDB em seus aplicativos, mas desejam usar uma pilha de software completamente aberta. Em seu estágio atual de desenvolvimento, o FerretDB oferece suporte a um subconjunto dos recursos do MongoDB mais comumente usados ​​em aplicativos típicos. A necessidade de implementar o FerretDB pode surgir em conexão com a transição do MongoDB para uma licença SSPL não livre, que é baseada na licença AGPLv3, mas não é aberta, pois contém um requisito discriminatório para fornecer sob a licença SSPL não apenas o o próprio código do aplicativo, mas também os códigos-fonte de todos os componentes envolvidos no fornecimento de serviços em nuvem.

MongoDB ocupa um nicho entre sistemas rápidos e escaláveis ​​que operam em dados chave/valor e DBMSs relacionais que são funcionais e fáceis de consultar. O MongoDB suporta o armazenamento de documentos em um formato semelhante ao JSON, possui uma linguagem bastante flexível para gerar consultas, pode criar índices para vários atributos armazenados, fornece armazenamento eficiente de grandes objetos binários, suporta o registro de operações para alterar e adicionar dados ao banco de dados, pode funciona de acordo com o paradigma Map/Reduce, suporta replicação e construção de configurações tolerantes a falhas.

Entre as mudanças no FerretDB 1.0:

  • Comandos createIndexes e dropIndexes implementados para criar e descartar um ou mais índices em uma coleção.
  • O comando getMore foi implementado para exibir uma nova parte do resultado obtido a partir da execução de comandos que retornam um cursor, como localizar e agregar.
  • Adicionado suporte para o operador de agregação $sum para calcular a soma dos valores do grupo.
  • Adicionado suporte para os operadores $limit e $skip para limitar o número e pular documentos ao agregar.
  • Adicionado suporte para o operador $count para contagem de documentos ao agregar.
  • Adicionado suporte para o operador $unwind para analisar campos de matriz em documentos recebidos e formar uma lista com um documento separado para cada elemento da matriz.
  • Adicionado suporte parcial para comandos collStats, dbStats e dataSize para obter estatísticas de coleta e banco de dados e tamanho de dados.

Fonte: opennet.ru

Adicionar um comentário