Saiba mais sobre os novos recursos, melhorias e correções introduzidas nas seguintes versões do MongoDB Java Reactive Streams Driver:
Novidades em 5.5.1
O 5.5.1 a versão do patch do driver inclui as seguintes alterações:
Corrige um problema em que a reautenticação do OIDC falhava quando acionada por uma operação executada em uma sessão, incluindo operações executadas em uma transação.
5.5: quais as novidades
Importante
Remoção de suporte para o MongoDB Server 4.0
Driver Java Reactive Streams v5.5 remove o suporte para o MongoDB Server 4.0. Para saber mais sobre versões compatíveis do servidor, consulte Compatibilidade.
A versão do driver 5.5 inclui as seguintes alterações, correções e recursos:
Adiciona suporte para a opção
connectTimeoutMS
ao utilizar a camada de transporte TLS Java Reactive Streams padrão.
Introduz melhorias de desempenho que são refletidas nos parâmetros de desempenho do driver. Para visualizar os resultados dos testes de benchmark de desempenho, consulte a seguinte seção Melhorias de Desempenho.
Melhorias no desempenho
As tabelas nesta seção mostram os resultados dos testes de desempenho para o driver Java síncrono. Os testes foram realizados em um sistema do MongoDB Server 8.0 com a seguinte configuração:
Executando em
localhost
com latência de rede insignificante. Em ambientes de alta latência, você poderá ver melhorias de desempenho menos significativas.Autenticação desativada.
TLS desabilitado.
Esperemos aumentos de desempenho semelhantes para todos os drivers do MongoDB Java porque eles compartilham a API driver-core
aprimorada.
Configurações de transporte padrão
A tabela a seguir mostra os resultados dos testes de desempenho para a v5.5 do driver configurado com configurações de transporte padrão. Cada linha inclui a funcionalidade testada, a melhoria percentual no desempenho e a pontuação z.
funcionalidade | Melhoria percentual | Z-score |
---|---|---|
Decodificação profunda de BSON | 19.44% | 5.4 |
Codificação BSON profunda | 102% | 22.8 |
Encontre muitos e esvazie o cursor | 25.08% | 13.72 |
Encontrar um por ID | 2.7% | 3.16 |
Decodificação BSON plana | 31.2% | 9.38 |
Codificação BSON plana | 199.5% | 12.34 |
Decodificação completa de BSON | 16.5% | 7.23 |
Codificação completa de BSON | 147.3% | 10.39 |
21.8% | 8.21 | |
Inserção em massa do cliente com documentos grandes | 91.3% | 24.44 |
Inserção em massa de collections com documentos grandes | 96.5% | 8.79 |
Inserção em massa com documentos grandes | 93.3% | 8.11 |
Inserção em massa com documentos pequenos | 39.3% | 5.72 |
Insira um com documentos grandes | 82.4% | 7.28 |
Inserção em massa do cliente com documentos pequenos | 49.5% | 17.99 |
Inserção em massa de collections com documentos pequenos | 47.8% | 6.44 |
Configurações de transporte da Netty
A tabela a seguir mostra os resultados dos testes de desempenho para v5.5 do driver configurado com as configurações de transporte Netty. Cada linha inclui a funcionalidade testada, a melhoria percentual no desempenho e a pontuação z.
funcionalidade | Melhoria percentual | Z-score |
---|---|---|
Encontre muitos e esvazie o cursor | 40.3% | 14.81 |
Encontrar um por ID | 4.4% | 4.12 |
16.9% | 3.77 | |
Inserção em massa do cliente com documentos grandes | 54.8% | 14.49 |
Inserção em massa de collections com documentos grandes | 104.9% | 38.72 |
Inserção em massa com documentos grandes | 74.6% | 65.55 |
Insira um com documentos grandes | 66.6% | 58.65 |
Inserção em massa do cliente com documentos pequenos | 36.1% | 15.41 |
Inserção em massa de collections com documentos pequenos | 39.3% | 37.38 |
Inserção em massa com documentos pequenos | 35.1% | 41.51 |
Dica
Para saber mais sobre como realizamos testes de benchmark de desempenho de drivers, consulte a especificação de benchmarking de desempenho.
5.4: quais as novidades
A versão do driver 5.4 inclui as seguintes alterações, correções e recursos:
Suporta
$lookup
operações para CSFLE e QE. Para saber mais, consulte as seguintes referências no manual do servidor:Comportamento $lookup e $graphLookup para CSFLE
Apresenta uma Lista de materiais (BOM) para gerenciar versões de artefatos MongoDB JVM que você pode usar em seu aplicação. Para exibir instruções sobre como adicionar o BOM ao seu aplicação, consulte a etapa Adicionar a lista de materiais do driver do tutorial Baixar e instalar.
Atualiza as dependências do Amazon Web Services SDK para 2.30.31 e 1.12.782 para testar o mecanismo de autenticação
MONGODB-AWS
.Adiciona uma opção de classificação às classes
ClientUpdateOneOptions
eClientReplaceOneOptions
. Essa alteração permite definir uma ordem de classificação para operações de atualização e substituição em gravações em massa de cliente . Para saber mais, consulte as seções Operações de atualização e Operações de substituição do guia Operações de gravação em massa.Adiciona suporte do Kubernetes para autenticação OIDC. Para saber mais, consulte a seção MONGODB-OIDC: Kubernetes do guia Mecanismos de autenticação empresarial.
Adiciona suporte de primeira classe para os seguintes operadores de query do Atlas Search :
phrase
regex
queryString
equals
moreLikeThis
in
wildcard
Para saber mais, consulte a seção Atlas Search do guia de agregação.
Atualiza cursores para atualizar a configuração
timeoutMS
quando você chamaclose()
sem afetar o tempo limite da operação.Permite utilizar um índice ao chamar o método
distinct()
especificando uma opçãohint
.
Para ver uma lista completa de alterações nesta versão, consulte as notas de versão v5.4 no Github.
O que há de novo em 5.3
A versão do driver 5.3 inclui as seguintes alterações, correções e recursos:
Importante: a próxima versão menor eliminará o suporte para a versão do MongoDB Server 4.0 e aumentará a versão mínima suportada 4.2 para. Recomendamos fazer alterações em seu aplicação para acomodar alterações significativas. Consulte a seção Notas de versão no manual do servidor para saber mais sobre a atualização.
Adiciona a classe
BinaryVector
para implementar o Subtipo Binário BSON 9 para armazenamento e recuperação vetorial. Esta classe fornece armazenamento mais eficaz de valores em comparação com uma lista de instâncias doDouble
. Você pode criar os seguintes tipos de vetores com base no tipo de elementos que seu vetor contém:Int8BinaryVector
: Vetor de números inteiros assinados com 8bitsFloat32BinaryVector
: Vetor de números de ponto flutuantePackedBitBinaryVector
: Vetor quantizado binário (em versão beta e sujeito a alterações antes de se tornar disponível ao público em geral)
Para saber mais sobre este recurso, consulte Quantização vetorial na documentação do Atlas. Para saber mais sobre esse tipo, consulte a documentação da API BinaryVector.
Remove a imparcialidade explícita da implementação do pool de conexões . Esta alteração pode contribuir para um melhor rendimento quando você usa uma instância
MongoClient
em muitos threads de aplicação . No entanto, essa alteração pode causar um aumento na latência da cauda.Adiciona uma opção de classificação aos métodos
updateOne()
ereplaceOne()
. Essa alteração também permite que você defina uma classificação como uma opção ao criar instânciasReplaceOneModel
eUpdateOneModel
. Para saber mais, consulte os guias Atualizar documentos, Substituir documentos e Operações de gravação em massa.
Novidades no 5.2
Importante
Remoção de suporte para o MongoDB Server 3.6
Driver Java Reactive Streams v5.2 remove o suporte para o MongoDB Server 3.6. Para saber mais sobre versões compatíveis do servidor, consulte Compatibilidade.
A versão do driver 5.2 inclui as seguintes alterações, correções e recursos:
Permite definir um tempo limite de operações do lado do cliente (CSOT). Esse recurso permite que você defina um tempo limite único na sua instância
MongoClient
que se aplica a todas as operações realizadas com esse cliente. Para saber mais, consulte o guia Limitar o tempo de execução do servidor.Importante
Opções de tempo limite obsoletos
As seguintes opções de tempo limite são preteridas:
waitQueueTimeoutMS
socketTimeoutMS
wTimeoutMS
maxTimeMS
maxCommitTimeMS
Use o recurso CSOT para substituir a funcionalidade dessas opções.
Adiciona a classe
SearchIndexType
, que você pode passar ao construir uma instância doSearchIndexModel
. Esta alteração permite a você especificar o tipo de índice ao criar um índice de Atlas Search ou Vector Search . Para saber mais, consulte o SearchIndexModel Documentação da API.Delega a implementação dos algoritmos que implementam os mecanismos de autenticação
SCRAM-SHA-1
eSCRAM-SHA-256
ao provedor JCA configurado. Essa alteração significa que seu aplicação pode usar um provedor JCA configurado compatível com FIPS para fornecer um nível mais alto de segurança.Revisa o mongodb-crypt versão de dependência para corresponder à versão para os drivers JVM . Futuras versões do
mongodb-crypt
serão lançadas junto com o driver e compartilharão o mesmo número de versão. Você deve atualizar sua dependênciamongodb-crypt
para v5.2.0 ao atualizar seu driver para esta versão. Para saber mais, consulte o guia criptografia em execução em execução.Melhorias de desempenho devido à implementação de criptografia nativa em todas as plataformas suportadas. A lista a seguir descreve as ações necessárias para implementar essa melhoria dependendo do seu sistema operacional:
Windows: atualize sua versão do
mongodb-crypt
para v5.2.0.Mac: atualize sua versão do
mongodb-crypt
para v5.2.0.Linux: instale
libmongocrypt.so
diretamente no sistema de arquivos, em vez de usar o arquivo fornecido com o arquivo JARmongodb-crypt
. Você pode encontrar instruções do Linux para instalar olibmongocrypt
no manual do Servidor. Se você usar um gerenciador de pacote para instalar olibmongocrypt
, o Java Native Access (JNA) o encontrará lá sem configurações adicionais. Como alternativa, você pode especificar o caminho da pesquisa definindo a variável de ambienteLD_LIBRARY_PATH
para o caminho do arquivo do pacotelibmongocrypt
.Recomendamos a instalação direta porque a biblioteca compartilhada agrupada não está vinculada ao OpenSSL devido ao potencial de incompatibilidades binárias do OpenSSL.
O carregamento da biblioteca compartilhada é tratado pelo JNA. Você pode visualizar as regras para a ordem do caminho da pesquisa de carregamento da biblioteca na documentação da classe NativeLibrary.
Corrige um problema que fazia com que os métodos
InsertOneResult.getInsertedId()
eInsertManyResult.getInsertedIds()
retornassem IDs de documento incorretos em algumas situações. Essa alteração é portada para o driver Java Reactive Streams v5.1.4 e v4.11.4.Quando uma operação de cluster fragmentado não obtém êxito, o driver evita selecionar o mesmo servidor
mongos
para tentativas de repetição de operação se outros servidoresmongos
estiverem disponíveis.Adiciona metadados de acessibilidade necessários quando seu aplicação usa Imagem nativa do GraalVM. Esses metadados substituem a necessidade de coletar metadados de acessibilidade ao usar as bibliotecas de drivers. Para saber mais, consulte Metadados de Acessibilidade na documentação do GraalVM.
Essa alteração não adiciona as entradas de recursos
libjnidispatch
elibmongocrypt
, porque a adição de entradas para todas as plataformas suportadas (destinos) afeta significativamente o tamanho dos executáveis nativos criados usando a GraalVM Native Imagem. Veja esta amostra resource-config.json no repositório do driver Github para ver como especificar essas entradas explicitamente se seu aplicação depender daorg.mongodb:mongodb-crypt
biblioteca.Ativa a pesquisa vetorial exata estendendo a API
VectorSearchOptions
para introduzir os seguintes subtipos de opção específicas:ExactVectorSearchOptions
: use esse tipo de opções para habilitar a correspondência precisa, garantindo que os resultados sejam os vetores mais próximos de um determinado vetor de consulta.ApproximateVectorSearchOptions
: use este tipo de opções para habilitar pesquisas que podem não retornar os vetores exatos mais próximos. Você pode passar um parâmetronumCandidates
ao instanciar esse tipo para especificar o número de vizinhos mais próximos a serem considerados.
Para saber mais sobre como usar a funcionalidade Atlas Vector Search , consulte o Início Rápido do Atlas Vector Search.
Novidades em 5.1.3
O 5.1.3 a versão do patch do driver inclui as seguintes alterações:
Corrige um problema que pode causar erros de asserção ao usar
Cursor
tipos.
Novidades em 5.1.2
O 5.1.2 a versão do patch do driver inclui as seguintes alterações:
Corrige um problema que impede o driver de codificar e decodificar classes concretas que estendem classes de base genéricas, nos casos em que você especifica a classe de base como o tipo genérico da instância
MongoCollection
.
Novidades em 5.1.1
O 5.1.1 a versão do patch do driver inclui as seguintes alterações:
Ao usar o mecanismo de autenticação
MONGODB-OIDC
, você não deve incluir vírgulas no valor da string de conexãoauthMechanismProperties
.
Novidades no 5.1
Importante
MongoDB Server v3.6 Fim da vida útil
O suporte para o MongoDB Server v3.6 está obsoleto nesta versão e será removido na versão v5.2 do driver.
Para saber mais sobre outras alterações introduzidas na v5.1, consulte o guia Novidades na documentação do Java Sync Driver.