A Microsoft abriu o código da SGBD DocumentDB, baseada em PostgreSQL.

A Microsoft anunciou a abertura do código do projeto DocumentDB, que pode ser usado tanto como um banco de dados NoSQL independente quanto como uma plataforma para criar sistemas de armazenamento personalizados ou como um complemento para armazenar dados no formato BSON em um banco de dados PostgreSQL. Na prática, o DocumentDB é utilizado pela Microsoft como base para o produto 'Azure Cosmos DB for MongoDB', que oferece uma interface compatível com o banco de dados orientado a documentos MongoDB. O código do projeto é escrito em C e é distribuído sob a licença MIT. O mecanismo DocumentDB é implementado como uma extensão sobre o banco de dados PostgreSQL.

Assim como no MongoDB, para o armazenamento de documentos estruturados, o DocumentDB utiliza um formato semelhante ao JSON chamado BSON (Binary JSON), que permite criar estruturas hierárquicas, onde documentos e arrays podem ser incorporados em outros documentos e arrays. A principal diferença em relação ao JSON é a utilização da serialização de dados em uma representação binária. O projeto fornece operações NoSQL para criar, ler, atualizar e excluir dados no formato BSON, além de uma API para o PostgreSQL padrão (o DocumentDB pode ser visto como uma variante do PostgreSQL com suporte a BSON). No DocumentDB, é possível utilizar recursos de pesquisa de texto completo, operações com tipos de dados vetoriais e geoespaciais.

O projeto é composto por dois componentes:

  • pg_documentdb_core — uma extensão para o PostgreSQL implementando o tipo BSON e operações para trabalhar com dados BSON no PostgreSQL.
  • pg_documentdb — uma API pública do DocumentDB com operações básicas para manipular documentos no formato BSON, processar consultas e gerenciar índices.

A primeira versão do DocumentDB oferece suporte a operações CRUD (criação, leitura, atualização, exclusão), índices para campos BSON individuais, índices para pesquisa de texto completo (compatíveis com RUM), consultas vetoriais e geoespaciais (compatíveis com pg_vector e postgis), além de recursos para formular consultas e agregar dados BSON.

O projeto FerretDB já adotou o DocumentDB, que desenvolve a implementação do SGBD MongoDB baseado no SGBD PostgreSQL. O FerretDB permite substituir o SGBD proprietário MongoDB por uma pilha de software totalmente aberta, baseada em PostgreSQL, sem a necessidade de modificar o código dos aplicativos. A necessidade de substituir o MongoDB se explica pela mudança deste SGBD para a licença SSPL, que é baseada na licença AGPLv3, mas não é considerada aberta, pois inclui uma exigência discriminatória de que tanto o código do próprio aplicativo quanto os códigos-fonte de todos os componentes envolvidos na prestação do serviço em nuvem sejam fornecidos sob a licença SSPL.

Inicialmente, o trabalho do FerretDB se resumia a traduzir chamadas do MongoDB em consultas SQL ao PostgreSQL, mas a partir da versão 2.0 do FerretDB, que está em fase de candidato a lançamento, um extensão do PostgreSQL chamada DocumentDB é utilizada para implementar o suporte ao formato BSON. A transição para o uso do DocumentDB permitiu aumentar a performance do FerretDB em mais de 20 vezes para alguns tipos de carga. Outras inovações na versão 2.0 incluem melhorias na compatibilidade com o MongoDB, a possibilidade de replicação e suporte à busca vetorial. O código do FerretDB é escrito em Go e é distribuído sob a licença Apache 2.0.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster