Notas de versão para MongoDB 5.0
Nesta página
- Lançamentos de patches
- Coleções de Time Series
- Agregação
- Auditoria
- Capped collections
- Fluxos de alterações
- Indexes
- Comandos removidos
- Conjuntos de réplicas
- Segurança
- Clusters fragmentados
- Mudanças no shell
- Snapshots
- Transações
- Alterações de nomenclatura
- Alterações gerais
- Considerações de desempenho
- Suporte a plataformas
- Alterações que afetam a compatibilidade
- Procedimentos de atualização
- Consideração de rebaixamento
- Download
- Problemas conhecidos
- Relatar um problema
Observação
MongoDB 5.0 lançado em 13 de julho de 2021
Lançamentos de patches
Aviso
Limitações da versão anterior
Os avisos críticos abaixo afetam algumas versões anteriores do MongoDB. Se sua implantação depender de recursos afetados por um aviso crítico, atualize para a versão de patch mais recente disponível.
Emitir | Versões afetadas |
---|---|
5.0.0 - 5.0.2 | |
5.0.0 - 5.0.2 | |
5.0.0 - 5.0.14 (arquiteturas de sistema ARM64 ou POWER) | |
5.0.2 - 5.0.17 (Backups incrementais no Ops Manager ou clusters do Cloud Manager) | |
5.0.0 - 5.0.1 | |
5.0.0 - 5.0.21 | |
5.0.0 - 5.0.10 | |
5.0.0 - 5.0.23 | |
5.0.6 - 5.0.21 (Coleção de séries temporais fragmentadas por objetos embarcados metaField) | |
5.0.0 - 5.0.24 |
5.0.29 – 30 de setembro de 2024
Importante
A correção para CSFLE e a autoconsulta do Queryable Encryption podem enviar valores em subpipelines como texto simples em vez de texto cifrado
Devido ao CVE-2024-8013, no MongoDB 5.0 anterior a 5.0.28, um bug na análise de query de determinados subpipelines auto-referenciais $lookup
complexos pode resultar em valores literais em expressões para campos criptografados sendo enviados para o servidor malformado.
Caso isso ocorra, nenhum documento será devolvido ou escrito. Esse problema afeta o binário mongocryptd
e a biblioteca compartilhada mongo_crypt_v1
nas seguintes versões do MongoDB Server:
7.3.0 - 7.3.3
7.0.0 - 7.0.11
6.0.0 - 6.0.16
5.0.0 - 5.0.28
Pontuação CVSS: 2.2
CWE: CWE-319: transmissão de texto não criptografado de informações confidenciais
SERVIDOR-96254 A autopesquisa de CSFLE e Queryable Encryption pode falhar ao criptografar valores em subpipelines
SERVER-59831 WTuniqueIndex: :_insert espera que os secundários passem em DupsAllowed=true
SERVIDOR-76777 Impasse entre o aborto externo da criação do índice e o autoaborto
SERVIDOR-88750 Adicione o parâmetro "bypassEmptyTsReplacement" para inserir, atualizar, findAndModify e bulkWrite
SERVIDOR-91223 $log fornece cálculo incorreto com decimal128
WT-8771 Limpeza de checkpoint para página obsoleta suja com itens excedentes
5.0.28 - 15 de julho de 2024
SERVER-63198 Impedir que o comando de encerramento fique aguardando
SERVIDOR-90747 Manipule $elemMatch com caminho vazio no enumerador do plano corretamente
SERVER-91362 Desempenho: não copia o objeto "scope" JS se existir um JsExecution em cache
SERVER-91562 [5.0] IndexDescriptor::compareIndexOptions trata "no unique/sparse" como não idêntico a "unique:false/sparse:false"
WT-10807 Ignora páginas excluídas na memória como parte da caminhada pela árvore
5.0.27 - 04 junho, 2024
SERVER-78556 Retornar o padrão de internalInsertMaxBatchSize para 64
SERVIDOR-79637 Resultados de query incorretos em $lookup com coleção estrangeira TS usando um predicado correlacionado
SERVIDOR- O80363 WriteConcern padrão do servidor não é respeitado quando o wtimeout é definido
SERVER-86474 $_internalApplyOplogUpdate com $set: {foo: Timestamp(0, 0) } não foi replicado corretamente
SERVER-86648 Os arquivos do classificador de criação de índice recuperável não são sincronizados no desligamento
5.0.26 - Mar 26, 2024
SERVER-68128 exceções lançadas durante a geração de resposta de comando levam a erro de rede
SERVER-72703 fazer o downgrade do bloqueio do bd do $out para MODE_IX
SERVER-83602 a reescrita de $or -> $in MatchExpression não deve gerar $or diretamente aninhado em outro $or
SERVER-86717 a refragmentação deve validar que a faixa de zonas informada pelo usuário não contém campos com prefixo $.
WT-11062 liberação segura do endereço de referência para permitir acesso concomitante
5.0.25 - 28 fevereiro de 2024
Importante
A correção para o MongoDB Server pode permitir uma conexão não confiável bem-sucedida
Devido ao CVE-2024-1351, no MongoDB 5.0 antes de 5.0.25, sob certas configurações de --tlsCAFile
e CAFile
, MongoDB Server pode ignorar a validação do certificado de par, o que pode resultar no sucesso de conexões não confiáveis.
Isso pode efetivamente reduzir as garantias de segurança fornecidas pelo TLS e conexões abertas que deveriam ter sido fechadas devido a falha na validação do certificado. Esse problema afeta as seguintes versões do MongoDB Server:
7.0.0 - 7.0.5
6.0.0 - 6.0.13
5.0.0 - 5.0.24
4.4.0 - 4.4.28
Pontuação CVSS: 8.8
CWE: CWE-295: validação de certificado inadequada
SERVER-64444 listIndexes falha em pré-5.0 inválidos após upgrade
SERVER-82353 transações multidocumento podem perder documentos quando o movePrimary é executado simultaneamente
SERVER-83564 verificar se o campo de processo está indexado em config.locks
SERVIDOR-85419 o balanceador polui os logs caso nenhum recipiente adequado seja encontrado durante a drenagem
WT-10017 remover as versões históricas instáveis no fim do rollback para estabilidade
5.0.24 - Jan 18, 2024
SERVER-50792 retornar erros mais úteis quando não for possível encontrar um índice de chave de fragmento para shardCollection/refineCollectionfragmentoKey
SERVER-77506 as transação multidocumento fragmentadas podem não corresponder aos dados e à ShardVersion
SERVER-81878 startupRecoveryForRestore pode não funcionar bem com o descarte de coleção aplicado durante a recuperação da inicialização
SERVER-83091 $or query pode disparar um loop infinito durante a enumeração do plano
WT-7929 investigar uma solução para evitar paralisações do FTDC durante o checkpoint
5.0.23 - 27 de novembro de 2023
SERVER-78108 interface POS deve expor seu estado de desligamento
SERVER-78115 os primários do fragmento devem confirmar que a maioria grava antes de usar novas informações de roteamento do servidor de configuração
SERVIDOR-83150 document::shred() não copia metadados do documento
WT-11564 corrigir o RTS para ler o valor da transação mais recente somente quando ele existir no checkpoint
WT-11602 ocultar as falhas de despejo esperadas do aplicativo e não reverter em caso de erros
5.0.22 - 26 de outubro de 2023
SERVER-68548 MongoDB Shell versão 4.4.15 registrando mensagem asio apesar da sinalização --quiet
SERVER-80021 fazer $convert ida e volta corretamente entre double e string
SERVER-80703 evitar percorrer a tabela de roteamento no MigrationDestinationManager
SERVER-81106 o fragmento do destinatário não espera a persistência local da versão da coleção para iniciar a fase de clonagem
WT-11064 ignorar tombstones visíveis globalmente como parte da verificação de atualização obsoleta
Todos os problemas do JIRA foram encerrados na versão 5.0.22
5.0.21 - 12 de setembro de 2023
SERVER-60466 aceitar drivers para disseminação de $clusterTimes assinados para conjuntos de réplicas --shardsvr antes da execução do addShard
SERVER-71627 as informações de rota de coleção em cache atualizadas bloquearão severamente todas as solicitações do cliente quando um cluster tiver 1 milhões de blocos
SERVER-78813 a propagação do ponto de confirmação falha indefinidamente com cursores de exaustão com optime lastCommitted nulo.
WT-10759 não tente forçar novamente a remoção de páginas de armazenamento de histórico durante a reconciliação
WT-11051 corrigir a comparação mais recente de carimbos de data/hora duráveis de início na validação agregada de carimbos de data/hora
Todos os problemas do JIRA foram encerrados na versão 5.0.21
5.0.20 - Ago 14 de 2023
SERVER-74954 resultado incorreto quando $or contido reescreve a condição extra $elemMatch
SERVER-78813 a propagação do ponto de confirmação falha indefinidamente com cursores de exaustão com optime lastCommitted nulo.
SERVER-79136 resultado de query incorreto de $match + $group no metaField durante séries temporais
WT-10449 não salvar a cadeia de atualizações quando não houver atualizações a serem gravadas no armazenamento de histórico
WT-11031 corrigir RTS para ignorar tabelas sem informações de janela de tempo no checkpoint
5.0.19 - 13 de julho de 2023
SERVER-71985 tentar inserir novamente a série temporal automaticamente em caso de erro DuplicateKey
SERVER-74551 WriteConflictException desnecessariamente registrada como aviso durante FindAndModify após a upgrade para o mongo 5.0
SERVER-77018 impasse entre dbStats e 2 compilações de índice
SERVER-78126 para tipos específicos de entrada, mongo::Value() sempre faz hashes com o mesmo resultado em plataformas big-endian
WT-10253 executa a varredura do dhandle da sessão e a varredura do cursor da sessão com mais frequência
Todos os problemas do JIRA foram encerrados na versão 5.0.19
5.0.18 - 18 de maio de 2023
Problemas corrigidos:
SERVER-48196 fazer upgrade do timelib para a mais recente para atualizar os arquivos de fuso horário internos para a versão mais recente
SERVER-54150 a recuperação por um checkpoint estável deve pausar em falhas do aplicativo oplog
SERVER-57056 a gravidade do syslog foi definida incorretamente para mensagens de INFO
SERVER-72686 adicionar suporte para a fase de agregação $collStats na coleção de séries temporais
WT-10551 backup incremental pode omitir blocos modificados
5.0.17 - abr 27 de 2023
Problemas corrigidos:
SERVER-73229 a atualização do cache de sessões lógicas ignora os erros de gravação da atualização do documento da sessão, levando à eliminação antecipada dos cursores
SERVER-74647 a criação da máquina de estado de refragmentação deve ser repetida após a interrupção
SERVER-75261 o comando "listCollections" falha com o erro BSONObjectTooLarge
SERVER-75431 eliminar ou corrigir a verificação de melhor ação para o banco de dados do primário no caminho de renomeação em clusters fragmentados
SERVER-76098 permitir queries com agrupamentos $search e não simples
5.0.16 - abr 10 de 2023
Problemas corrigidos:
SERVER-61909 suspender a inserção ou exclusão de documentos com um grande número de entradas de índice
SERVER-73822 a série temporal $group reescrita ignora determinados acumuladores
SERVER-74345 mongodb-org-server 4.4.19, 5.0.15, 6.0.5 não iniciam após upgrade da versão mais antiga (Debian, pacotes RPM)
SERVER-74501 corrigir a confiança na conclusão do MigrationBatchFetcher/Inserter para não gerar um thread de limpeza extra
SERVER-75205 impasse entre stepdown e restauração de bloqueios após ceder quando todos os tickets de leitura se esgotarem
5.0.15 - 27 fevereiro de 2023
Problemas corrigidos:
SERVER-54900 o bloqueio de chamadas de rede pode atrasar a resolução da fonte de sincronização indefinidamente
SERVER-72416 o código de projeção find e findAndModify não honra o agrupamento de nível da coleção
SERVER-71759 o comando dataSize não cede
SERVER-72222 o MapReduce com otimização de redução única falha na mesclagem de resultados em um cluster fragmentado
WT-9268 atrasar a exclusão do registro de armazenamento de histórico para reconciliação
5.0.14 - 21 de novembro de 2022
Problemas corrigidos:
SERVER-68477 melhorar o tratamento de NaN para o parâmetro de índice TTL expireAfterSeconds
SERVER-66289 $out gera incorretamente um erro de tamanho BsonObj na v5.0.8
SERVER-61185 usar o prefix_search para pesquisa de índice único
SERVER-68115 correção de bug para o trigger invariante "ElemMatchRootLength > 0"
SERVER-68139 o comando Reharding falhará se a classificação de projeção for maior que 100 MB
Todos os problemas do JIRA foram encerrados na versão 5.0.14
5.0.13 - 29 de setembro de 2022
Problemas corrigidos:
SERVER-69611 configurar a opção do compilador -ffp-contract=off como padrão
SERVER-69220 o refineCollectionShardKey permite alternar os campos de chave de fragmento atuais entre baseados em intervalo e com hash, o que leva à incoerência dos dados
SERVER-67650 o destinatário de refragmentação pode retornar RemainingOperationTimeEstimatedSecs=0 quando o aplicador de oplog não alcançar o buscador de oplog
SERVER-68094 refragmentação com _id gerado de forma personalizada falha com erro de projeção
WT-9870 corrigir a atualização do carimbo de data/hora fixado sempre que o carimbo de data/hora mais antigo for atualizado durante a recuperação
5.0.12 - 05 de setembro de 2022
Problemas corrigidos:
SERVER-68925 Reintroduzir as configurações de registro da tabela de verificação na inicialização (reverter SERVER-43664)
SERVER-63852 getThreadName() não pode falhar
SERVER-60958 evitar travamento do servidor na migração de partes quando ocorrer um evento de abdicação
SERVER-65382 o AutoSplitVector não deve usar clientReadable para reordenar campos de chave de fragmento
SERVER-63843 não permitir doLog recursivo em manipuladores de sinal síncronos
5.0.11 - Ago 19 de 2022
Problemas corrigidos:
SERVER-68511 atualização MovePrimary da entrada
config.databases
deve utilizar notação de campos pontilhadosSERVER-61321 aprimorar o tratamento de valores grandes/NaN para a versão do índice de texto
SERVER-60607 melhorar o tratamento de valores grandes/NaN para a versão do índice geográfico
SERVER-68628 repetir uma operação de refragmentação que falhou após failover primário pode causar falha no servidor ou perda de gravações
SERVER-68522 impedir binário 5.0 de iniciar no FCV 4.4 com índice TTL mal configurado
WT-9500 corrigir RTS para uso de janela de tempo de célula em vez de carimbos de data/hora de chave/valor da atualização do HS
5.0.10 - 29 de julho de 2022
Problemas corrigidos:
SERVER-66418 projeção incorreta criada durante a análise de dependência devido à suposição de ordem das strings
SERVER-65821 impasse durante setFCV quando há transações preparadas que não persistiram na decisão de confirmação/anulação
SERVER-65131 desativar a segmentação de leitura oportunista (exceto para leituras distribuídas)
SERVER-63971 alterar o parâmetro do servidor para o comportamento padrão de leitura das próprias gravações após a transação 2PC
SERVER-66433 prazo de backport aguardando a conclusão da exclusão do intervalo sobreposto para versões anteriores às versões v5.1
5.0.9 - 31 de maio de 2022
Problemas corrigidos:
SERVER-65636 remover limites de número de conexões LDAP por host
SERVER-65137 detectar alterações de namespace ao atualizar a coleção após ceder o controle
SERVER-64822 fragmentar uma coleção vazia libera a seção crítica muito cedo
SERVER-62175 mongos não consegue anexar RetryableWrite Error Label For Command Interrupted In _parseCommand
WT-9096 corrigir pesquisa perto de retornar chave/valor errado às vezes quando a chave não existe
5.0.8 - abr 25 de 2022
Problemas corrigidos:
SERVER-63531 o commitQuorum inclui incorretamente nós buildIndexes:false e a mensagem de erro diz incorretamente que apenas nós com direito de voto estão qualificados
SERVER-63387 1 o StreamingCursor deve retornar os blocos de backup na ordem em que foram recuperados do cursor de backup do WiredTiger
SERVER-62229 corrigir o invariante quando aplicar entradas de criação de índice quando recoverFromOplogAsStandalone=true
SERVER-61879 atualizações para recuperar migrações nunca devem entrar em atualizações contínuas
WT-8924 não verificar em relação à janela temporal do disco se houver uma lista de inserção quando verificar conflitos no armazenamento de linhas
5.0.7 - abr 11 de 2022
Problemas corrigidos:
SERVER-64517 RecoverableCriticalSection não foi recuperado corretamente na inicialização
SERVER-64403 encontrar consultas com codificação de agrupamentos SORT_MERGE para o atributo de ordenação ausente
SERVER-63742 o tempo de topologia padrão no fragmento pode levar a uma atualização infinita no registro do fragmento
SERVER- A60412 verificação do limite de memória do host não respeita cgroups v2
WT-7922 lidar com arquivo de versão do WiredTiger ausente
5.0.6 - 31 janeiro de 2022
Problemas corrigidos:
WT-8395 dados incoerentes após a atualização do 4.4.3 e 4.4.4 para o 4.4.8+ e 5.0.2+
SERVER-62245 MigrationRecovery não pode presumir que apenas uma migração precisa ser recuperada
SERVER-61427 criações de índice único podem causar perda de disponibilidade durante a confirmação devido à verificação de muitas duplicatas falsas
SERVER-61194 impedir a reutilização do OID do pacote de séries temporais com detalhamento grosseiro
SERVER-60310 a validação da resposta OCSP não deve considerar os status de certificados irrelevantes
5.0.5 - 6 de dezembro de 2021
Problemas corrigidos:
SERVER-61483 o coordenador de refragmentação não consegue recuperar a decisão de abortar ao assumir, tenta confirmar o sucesso da operação levando à incoerência dos dados
SERVER-59858 adicione observabilidade para tarefas agendadas no thread do reator
SERVER-51329 erro inesperado não repetível no desligamento de um servidor mongos
WT-8163 considerar mais cenários de despejo para desistir da limpeza do checkpoint
WT-7912 corrigir a otimização de busca por prefixo próximo para lidar com cenários onde o intervalo de chaves está dividido entre páginas.
5.0.4 - 15 de novembro de 2021
Problemas corrigidos:
SERVER-60326 a inicialização do Windows Server falha quando o nome do certificado X509 está vazio
SERVER-59876 grandes atrasos no retorno do libcrypto.so ao estabelecer conexões de saída
SERVER-59456 iniciar o threadpool LDAPReaper
SERVER-59226 impasse na desativação com uma sessão de perfil marcada como impossível de ininterromper
SERVER-59074 não adquirir tickets de armazenamento apenas para definir/esperar a visibilidade do oplog
5.0.3 - 21 de setembro de 2021
Problemas corrigidos:
SERVER-57667: aumentar a velocidade de processamento do pipeline de clonagem de coleções da refragmentação
SERVER-57630: ativar SSL_OP_NO_RENEGOTIATION no Ubuntu 18.04 quando executar contra o OpenSSL 1.1.1
WT-8005: corrigir um erro de preparação de confirmação que poderia deixar a entrada do armazenamento de histórico sem solução
WT-7995: corrigir a visibilidade global que não pode ir além da visibilidade do checkpoint
WT-7984: correção de um bug que poderia fazer com que um checkpoint omitisse uma página de dados
5.0.2 - Ago 4 de 2021
Problemas corrigidos:
SERVER-58936: as restrições de índice único podem não ser forçadas
SERVER-57756: corrida entre stepdowns simultâneos e aplicação de entrada de transação no oplog
SERVER-54729: os pacotes MongoDB Enterprise para Debian/Ubuntu devem depender de libsasl2-modules e libsasl2-modules-gssapi-mit
SERVER-47372: as coleções config.cache podem permanecer mesmo após a coleção ter sido descartada
WT-6729: pausar a remoção antes de executar a verificação de transações ativas do rollback para um estado estável
5.0.1 - 22 de julho de 2021
Problemas corrigidos:
SERVER-58489: criação de coleção travada em um loop infinito do writeConflictRetry quando há um nome duplicado como visualização
SERVER-58171: alterar a granularidade da série temporal não atualiza a definição da visualização
5.0.0 - 13 de julho de 2021
O restante desta página fornece as notas de versão do 5.0.0:
Coleções de Time Series
O MongoDB 5.0 introduz coleções de séries temporais que armazenam eficientemente sequências de medições durante um período de tempo. Em comparação com coleções normais, armazenar dados de séries temporais em coleções de séries temporais melhora a eficiência da query e reduz o uso de disco para seus dados e índices.
Agregação
Novos operadores de aggregation
O MongoDB 5.0 introduz os seguintes operadores de agregação:
Operador | Descrição |
---|---|
O | |
Aumenta um objeto Date() por um número específico de unidades de tempo. | |
Retorna a diferença entre duas datas. | |
Reduz um objeto Date() por um número específico de unidades de tempo. | |
Trunca uma data. | |
Retorna o valor de um campo especificado de um documento. Você pode usar $getField para recuperar o valor de campos com nomes que contenham pontos (. ) ou comecem com cifrões ($ ). | |
O método $rand gera um valor flutuante aleatório entre 0 e 1 cada vez que é chamado. O novo operador $sampleRate é baseado em $rand . | |
Adiciona o método $sampleRate para selecionar documentos probabilisticamente de um pipeline em uma determinada taxa. | |
Adiciona, atualiza ou remove um campo especificado em um documento. Você pode usar $setField para adicionar, atualizar ou remover campos com nomes que contenham pontos (. ) ou começar com cifrões ($ ). | |
Remove um campo especificado em um documento. Um alias para $setField remover campos com nomes que contêm pontos (. ) ou que começam com sinais de dólar ($ ). |
Operadores de Janela
O MongoDB 5.0 introduz o $setWindowFields
estágio de pipeline , permitindo que você execute operações em uma extensão específica de documentos em uma coleção, conhecida como janela. A operação retorna os resultados baseado no operador de janela escolhido.
Por exemplo, você pode utilizar o estágio $setWindowFields
para produzir o:
Diferença nas vendas entre dois documentos em uma coleção.
Classificações de vendas.
Total cumulativo de vendas.
Análise de informações complexas de séries temporais sem exportar os dados para um banco de dados externo.
Melhorias gerais de aggregation
$expr
Operador: operadores de comparação usam índices
A partir de MongoDB 5.0, os operadores $eq
, $lt
, $lte
, $gt
e $gte
colocados em um operador $expr
podem utilizar índices para melhorar o desempenho.
$ifNull
Expressão aceita múltiplas expressões de entrada
Iniciando no MongoDB 5.0, você pode especificar múltiplas expressões de entrada para a expressão $ifNull
antes de retornar uma expressão de substituição.
let
Opção para agregação
Iniciando no MongoDB 5.0, o comando aggregate
e o método auxiliar do db.collection.aggregate()
têm uma opção do let
para especificar uma lista de variáveis que podem ser utilizadas em outro lugar no aggregation pipeline. Isso permite que você melhore a legibilidade do comando separando as variáveis do texto da query.
$lookup
Estágio: subqueries correlacionadas concisas
A partir do MongoDB 5.0, um pipeline de agregação $lookup
estágio oferece suporte a subquerys correlacionadas concisas que melhoram as junções entre coleções.
$lookup
Estágio: subqueries não correlacionadas
A partir do MongoDB 5.0, para uma subquery não correlacionada em um estágio de pipeline $lookup
contendo um estágio $sample
, o operador $sampleRate
ou o operador $rand
, a subquery sempre é executada novamente se for repetida. Anteriormente, dependendo do tamanho da saída da subquery, a saída da subquery era armazenada em cache ou a subquery era executada novamente.
Consulte Executar uma Subquery Não Correlacionada com $lookup
.
$sort
Estágio: melhorias no desempenho
A partir do MongoDB 5.0, o otimizador de query empurra os resultados de um estágio de $project
para o estágio $sort
. Como resultado, as operações de $sort
podem exigir menos RAM quando usadas com o estágio project
e evitar erros Sort exceeded memory limit
.
Auditoria
Configuração do filtro de auditoria de tempo de execução
O MongoDB 5.0 adiciona a capacidade de configurar filtros de auditoria no tempo de execução.
Operador | Descrição |
---|---|
Define o intervalo de pesquisa para verificar a configuração da auditoria | |
Atualizações gerais de auditoria
A partir do MongoDB 5.0:
A auditoria de eventos do sistema tem:
Um campo uuid adicional e outros aprimoramentos de mensagem de auditoria.
Novos tipos de mensagem de auditoria: clientMetadata, directAuthMutation, logout e startup.
Informações adicionais e cenários de registro para estes tipos de mensagem de auditoria existentes: authCheck, authenticate, createCollection, createIndex e dropCollection.
A auditoria de operações DDL em secundários sofreu alterações. Consulte Auditoria de eventos e filtro.
Capped collections
Exclusões de coleções limitadas são replicadas para secundárias
A partir do MongoDB 5.0, as operações de exclusão implícitas para coleções limitadas do conjunto de réplicas são processadas pelo primário e replicadas para os membros secundários.
Exclusões explícitas permitidas em coleções limitadas
A partir do MongoDB 5.0.7, você pode excluir documentos de coleções limitadas usando métodos de exclusão.
Fluxos de alterações
Alterar saída de eventos
A partir do MongoDB 5.0, os eventos de alteração contêm o campo updateDescription.truncatedArrays
para registrar truncamentos de array.
Indexes
Alteração de comportamento de índices parciais
A partir do MongoDB 5.0, vários índices parciais podem ser criados usando o mesmo padrão de chave, desde que os campos partialFilterExpression não expressem filtros equivalentes.
Nas versões anteriores do MongoDB, a criação de vários índices parciais não é permitida ao usar o mesmo padrão de chave com diferentes PartialFilterExpressions.
Mudança exclusiva de comportamento do índice esparso
A partir do MongoDB 5.0, índices esparsos e não esparsos exclusivos com o mesmo padrão de chave podem existir em uma única collection.
Consulte criação exclusiva de índice esparso
Não Ready
é possível descartar índices durante a criação de índices em andamento
O comando db.collection.dropIndexes()
não pode descartar índices prontos se houver alguma construção de índice em andamento.
Nas versões 4.4.0-4.4.4 do MongoDB, esta lógica não era verdadeira devido a um bug.
A validação em primeiro plano pode corrigir inconsistências de metadados multichave
Quando executado em uma implantação do MongoDB, db.collection.validate()
tenta corrigir inconsistências de metadados de várias chaves de implantações autônomas.
Remoção do geoHaystack
índice e do geoSearch
comando
O MongoDB 5.0 remove o índice geoHaystack
obsoleto e o comando geoSearch
. Em vez disso, use um 2d index com $geoNear
ou um dos geospatial query operators compatíveis.
Atualizar sua instância MongoDB para 5.0 e configurar featureCompatibilityVersion para 5.0
excluirá quaisquer índices do geoHaystack
preexistentes.
Novas mensagens de erro
As operações db.collection.createIndex()
e db.collection.createIndexes()
têm novas mensagens de erro quando as opções são especificadas incorretamente.
Construções de índice interrompidas
Se um nó em um conjunto de réplicas for desligado corretamente ou revertido durante uma compilação de índice, o progresso da compilação do índice será salvo no disco. Quando o servidor é reiniciado, a criação de índice é retomada a partir da posição salva.
reIndex
Mudança de comportamento
A partir do MongoDB 5.0, o comando reIndex
e o método db.collection.reIndex()
shell só podem ser executados em instâncias autônomas.
Comandos removidos
A partir do MongoDB 5.0, estes comandos do banco de dados e métodos de assistente de shell mongo
foram removidos:
Comando removido | Alternativa |
---|---|
Não disponível | |
Não disponível | |
Não disponível | |
$geoNear ou um dos operadores de query geoespacial permitidos |
Conjuntos de réplicas
Leituras não transacionais em config.transactions
A partir do MongoDB 5.0, as leituras sem transação não são permitidas na collection config.transactions
com os seguintes read concerns e opções:
"majority"
e a opção afterClusterTime está definidaAo usar um driver do MongoDB e
"majority"
em uma sessão causalmente consistente
hello
Comando
A partir do MongoDB 5.0, o comando hello
e o método db.hello()
foram introduzidos como substitutos do comando isMaster
e do método db.isMaster()
. A nova métrica de topologia connections.exhaustHello
rastreia isso em connections
.
Período quiesce
A partir do MongoDB 5.0, mongod
e mongos
entram em um período de inatividade para permitir que qualquer operação de banco de dados em andamento seja concluída antes do encerramento.
Limite removido para members[n]._id
valores
A partir de MongoDB 5.0, o campo members[n]._id
pode ser qualquer valor inteiro maior ou igual a 0
. Anteriormente, esse valor era limitado a um número inteiro entre 0
e 255
inclusive.
enableMajorityReadConcern
Não é configurável
A partir do MongoDB 5.0, enableMajorityReadConcern
e --enableMajorityReadConcern
não podem ser alterados e são sempre definidos como true
devido a melhorias no mecanismo de armazenamento.
Em versões anteriores do MongoDB, enableMajorityReadConcern
e --enableMajorityReadConcern
são configuráveis e podem ser configurados como false
para evitar que a pressão do cache de armazenamento imobilize um sistema com uma arquitetura PSA (primary-secondary-arbiter) de três membros.
Se você estiver usando uma arquitetura PSA (primária-secundária-arbiter) de três membros, considere o seguinte:
A preocupação de gravação
"majority"
pode causar problemas de desempenho se um secundário não estiver disponível ou estiver atrasado. Para obter conselhos sobre como mitigar esses problemas, consulte Atenuar problemas de desempenho com um conjunto de réplicas de PSA autogerenciado.Se você estiver usando um
"majority"
padrão global e o write concern for menor do que o tamanho da maioria, suas consultas poderão retornar dados obsoletos (não totalmente replicados).
Controle aprimorado de timeout do pool de threads
A partir do MongoDB 5.0, você pode usar o novo parâmetro de servidor replWriterMinThreadCount
para permitir que threads ociosos acima desse mínimo sejam fechados. Quando replWriterMinThreadCount
é configurado com um valor menor que replWriterThreadCount
, as threads ociosas acima de replWriterMinThreadCount
atingem o tempo limite.
Reconfigurando conjuntos de réplicas PSA
Ao reconfigurar conjuntos de réplicas de primarias-secundárias-arbiter (PSA) ou mudar para uma arquitetura PSA, agora é necessário, em alguns casos, realizar a reconfiguração em uma mudança de duas etapas. O MongoDB 5.0 apresenta o método rs.reconfigForPSASet()
que executa ambas as etapas. Se você não puder usar o método auxiliar, siga o procedimento em Modificar um conjunto de réplicas de PSA autogerenciadocom segurança.
Limitar reavaliações da fonte de sincronização
maxNumSyncSourceChangesPerHour
determina quantas alterações de fonte de sincronização podem ocorrer por hora antes que o nó pare temporariamente de reavaliar uma fonte de sincronização. Esse parâmetro não impedirá que um nó comece a sincronizar a partir de outro nó se ele não tiver uma fonte de sincronização.
enableOverrideClusterChainingSetting
Server Parameter
A partir do MongoDB 5.0.2, você pode definir o novo parâmetro do servidor enableOverrideClusterChainingSetting
como true
para permitir que os membros secundários repliquem dados de outros membros secundários, mesmo que settings.chainingAllowed
seja false
.
Segurança
Compatível com rotação de certificados online
A partir do MongoDB 5.0, agora você pode girar os seguintes certificados TLS sob demanda sem primeiro precisar interromper a execuçãomongod
ou mongos
instância:
CRL (Certificate Revocation List) files
(em plataformas Linux e Windows)
Para girar esses certificados, substitua os arquivos de certificado no sistema de arquivos por versões atualizadas e use o comando rotateCertificates
ou o método db.rotateCertificates()
shell para disparar a rotação do certificado.
A rotação de certificados dessa maneira não requer tempo de inatividade e não descarta nenhuma conexão remota ativa.
Consulte Rotação de certificados on-line para obter detalhes completos.
Suporte para configuração de conjuntos de criptografia TLS 1.3
O MongoDB 5.0 introduz o parâmetro opensslCipherSuiteConfig
para habilitar a configuração dos conjuntos de criptografia suportados OpenSSL deve permitir ao utilizar criptografia TLS 1.3.
Aviso de inicialização do certificado de conexão TLS X509
A partir do MongoDB 5.0, mongod
e mongos
agora emitem um aviso de inicialização quando seus certificados não incluem um atributo Subject Alternative Name.
As seguintes plataformas não suportam validação de nome comum:
iOS 13 e superior
MacOS 10.15 e superior
Vá para 1,15 e superior
Os clientes que usam essas plataformas não se autenticarão em servidores MongoDB que usam certificados x.509 cujos nomes de host são especificados por atributos CommonName.
Ação de privilégio do ApplyOps
O MongoDB 5.0 introduz a ação de privilégio do applyOps
que é herdada pelo dbAdminAnyDatabase
.
A ação applyOps
permite que os usuários executem o comando de banco de dados applyOps
.
Clusters fragmentados
Refragmentação
A chave de shard ideal permite que o MongoDB distribua documentos uniformemente em todo o cluster, ao mesmo tempo em que facilita padrões de query comuns. Uma chave de shard abaixo do ideal pode levar a problemas de desempenho ou dimensionamento devido à distribuição desigual de dados. A partir do MongoDB 5.0, você pode usar o comando reshardCollection
para alterar a chave de shard de uma collection para alterar a distribuição dos dados no cluster.
currentOp
Relata operações de refragmentação em andamento
A partir do MongoDB 5.0, o estágio de agregação $currentOp
(e o comando currentOp
e o método de shell db.currentOp()
) inclui informações adicionais sobre o status das operações de refragmentação em andamento para o coordenador de refragmentação e os fragmentos doador e receptor.
db.currentOp
Método agora usa estágio de aggregation em mongosh
A partir do MongoDB 5.0, o estágio de agregação $currentOp
é usado ao executar o método auxiliar db.currentOp()
com mongosh
.
mongos
/ mongod
Conjunto de conexões
A partir do MongoDB 5.0, o MongoDB adiciona a opção de parâmetro "automatic"
como o novo padrão para o ShardingTaskExecutorPoolReplicaSetMatching
. Quando configurado para um mongos
, a instância segue o comportamento especificado para a opção "matchPrimaryNode"
. Quando configurado para um mongod
, a instância segue o comportamento especificado para a opção "disabled"
.
renameCollection
Compatível com coleções compartilhadas
A partir do MongoDB 5.0, você pode utilizar o comando renameCollection
para alterar o nome de uma collection fragmentada.
Ao renomear uma collection fragmentada ou não fragmentada em um cluster fragmentado, as collections de origem e de destino são bloqueadas exclusivamente em cada shard. As operações subsequentes nas collections de origem e de destino devem aguardar até que a operação de renomeação seja concluída.
movePrimary
Mensagem de erro para gravações durante a operação
A partir do MongoDB 5.0, ao usar o comando movePrimary
para remover um fragmento de um cluster fragmentado, as gravações no fragmento original gerarão uma mensagem de erro.
Dividir e mesclar logs de alterações de chunks mostra o shard proprietário
A partir do MongoDB 5.0, os documentos na coleção config.changelog
para operações de divisão e mesclagem contêm um campo owningShard
. O campo owningShard
mostra o shardId
do fragmento que possui as partes que foram divididos ou mescladas.
O campo owningShard
ajuda a identificar fragmentos onde ocorrem operações de divisão ou mesclagem com frequência.
maxCatchUpPercentageBeforeBlockingWrites
Server Parameter
A partir do MongoDB 5.0, você pode definir o maxCatchUpPercentageBeforeBlockingWrites
para especificar a porcentagem máxima permitida de dados ainda não migrados durante uma operação moveChunk
em comparação com o tamanho total (em MBs) do bloco que está sendo transferido.
Esse parâmetro pode afetar o comportamento de:
moveChunk
comandos que são executados manualmente.Funcionalidade de balanceador de carga, que executa automaticamente vários comandos
moveChunk
para distribuir uniformemente os blocos entre os fragmentos. Consulte Balanceador de cluster compartilhado.
Mudanças no shell
Novo shell MongoDB: mongosh
O shell mongo
foi descontinuado no MongoDB v5.0. O shell de substituição é mongosh
. O shell herdado mongo
será removido em uma versão futura.
O empacotamento do shell também muda no MongoDB v5.0. Consulte as instruções de instalação para ver mais detalhes.
Suporte da Shell para provedores do GCP e do Azure KMS
A partir do MongoDB 5.0, o KMS do Google Cloud Platform e o Azure Key Vault são compatíveis tanto com o shell mongosh
quanto com o shell legado mongo
como provedores de serviço de gerenciamento de chaves (KMS) para criptografia de nível de campo no lado do cliente.
Usando um KMS, você pode armazenar de forma centralizada e segura as chaves mestras do cliente (CMKs), que são usadas para criptografar e descriptografar chaves de criptografia de dados como parte do fluxo de trabalho de criptografia em nível de campo no lado do cliente.
Além disso, um KMS configurado permite o uso de Como o CSFLE descriptografa documentos de campos de dados quando usado com MongoDB Enterprise.
Para saber mais, consulte Configurar um provedor de KMS usando o mongosh.
Snapshots
Compatibilidade estendida para read concern "snapshot"
A partir do MongoDB 5.0, os read concerns "snapshot"
são compatíveis com algumas operações de leitura fora de transações multidocumento em primaries e secundários. Consulte Executar queries de snapshots de longa execução.
minSnapshotHistoryWindowInSeconds
Server Parameter
Iniciando no MongoDB 5.0, você pode utilizar o parâmetro minSnapshotHistoryWindowInSeconds
para controlar por quanto tempo o WiredTiger mantém o histórico de snapshots.
Transações
coordinateCommitReturnImmediatelyAfterPersistingDecision
Parâmetro
O parâmetro do servidor coordinateCommitReturnImmediatelyAfterPersistingDecision
controla quando as decisões feitas na transação são devolvidas ao cliente.
O parâmetro foi introduzido no MongDB 5.0 com um valor padrão de true
. No MongoDB 6.1, o valor padrão muda para false
.
Quando coordinateCommitReturnImmediatelyAfterPersistingDecision
é false
, o coordenador de transação de fragmento aguarda que todos os membros reconheçam uma confirmação de transação de vários documentos antes de retornar a decisão de confirmação ao cliente.
Alterações de nomenclatura
A partir de fevereiro de 2022, a terminologia "API versionada" foi alterada para "API estável". Todos os conceitos e funcionalidades permanecem os mesmos com essa mudança de nomenclatura.
Alterações gerais
Estatística do plano de execução da query com $lookup
estágio de pipeline
O MongoDB 5.0 adiciona estatísticas de plano de execução para queries que usam um estágio de pipeline $lookup
.
Manipulação aprimorada de ($
) e (.
) em nomes de campo
O MongoDB 5.0 adiciona suporte melhorado para nomes de campo que são ($
) prefixados ou que contêm (.
) caracteres. As regras de validação para armazenar dados foram atualizadas para facilitar o trabalho com fontes de dados que usam esses caracteres.
Preocupação com gravação padrão em todo o cluster
A partir do MongoDB 5.0, uma vez que a preocupação com a gravação em todo o cluster (CWWC) é definida por meio do comando setDefaultRWConcern
, a preocupação com a gravação não pode ser desfeita.
Write concern padrão implícito
A partir do MongoDB 5.0, o write concern padrão implícito é w: majority
. No entanto, considerações especiais são feitas para sistemas contendo arbiters:
A maioria dos votos de um conjunto de réplicas é de 1 mais metade do número de membros votantes, arredondado para baixo. Se o número de membros votantes portadores de dados não for maior que a maioria votante, o write concern padrão é
{ w: 1 }
.Em todos os outros cenários, a preocupação de gravação padrão é
{ w: "majority" }
.
Especificamente, MongoDB usa a seguinte fórmula para determinar a preocupação de escrita padrão:
if [ (#arbiters > 0) AND (#non-arbiters <= majority(#voting-nodes)) ] defaultWriteConcern = { w: 1 } else defaultWriteConcern = { w: "majority" }
Por exemplo, considere as seguintes implantações e suas respectivas preocupações de escrita padrão:
Non-Arbiters | Árbitros | Nós de votação | Maioria dos nós de votação | Write concern padrão implícito |
---|---|---|---|---|
2 | 1 | 3 | 2 | { w: 1 } |
4 | 1 | 5 | 3 | { w: "majority" } |
No primeiro exemplo:
Existem 2 não-arbitores e 1 árbitro para um total de 3 nós de votação.
A maioria dos nós de votação (1 mais metade de 3, arredondado para baixo) é 2.
O número de não-arbitros (2) é igual à maioria dos nós de votação (2), resultando em uma preocupação implícita de escrita de
{ w: 1 }
.
No segundo exemplo:
Existem 4 não-árbitros e 1 árbitro para um total de 5 nós votantes.
A maioria dos nós de votação (1 mais metade de 5, arredondado para baixo) é 3.
O número de não-arbitros (4) é maior que a maioria dos nós de votação (3), resultando em uma preocupação implícita de escrita de
{ w: "majority" }
.
O write concern padrão { w: "majority" }
oferece uma garantia de durabilidade mais forte no caso de uma eleição ou se os membros do conjunto de réplicas ficarem indisponíveis.
mongosShutdownTimeoutMillisForSignaledShutdown
Parâmetro
A partir do MongoDB 5.0, o novo parâmetro mongosShutdownTimeoutMillisForSignaledShutdown
especifica o tempo, em milissegundos, para aguardar a conclusão de qualquer operação de banco de dados em andamento antes de iniciar um desligamento demongos
.
Nível de zstd
compressão configurável
O MongoDB 5.0 apresenta a opção de arquivo de configuração do zstdCompressionLevel
que permite níveis de compressão configuráveis quando o blockCompressor
está definido para zstd
.
Operações de leitura sem travamento
A partir do MongoDB 5.0, as seguintes operações de leitura não são bloqueadas quando outra operação mantém um bloqueio de escrita exclusivo (X) na collection:
Ao escrever em uma collection, mapReduce
e aggregate
mantêm uma trava exclusiva de intenção (IX). Portanto, se uma trava X exclusiva já estiver mantida em uma collection, as operações de escrita mapReduce
e aggregate
serão bloqueadas.
Falhas na validação do esquema explicadas
O MongoDB 5.0 adiciona explicações detalhadas quando um documento falha na validação de esquema.
Opção de reparo no validate
comando
A partir do MongoDB 5.0, o comando validate
e o método auxiliar db.collection.validate()
têm uma nova opção de reparo para reparar uma coleção com inconsistências.
O comando validate
e o método auxiliar db.collection.validate()
também retornam um novo valor booleano repaired
que é true
se a coleção foi reparada.
validate
Comando relata violações de esquema de documento
A partir do MongoDB 5.0, validate
e db.collection.validate()
validam documentos em uma collection. Os comandos relatam se alguma regra de validação de esquema foi violada.
Opção de reparo em mongod
A partir do MongoDB 5.0, a opção --repair
para mongod
valida as collections para encontrar quaisquer inconsistências e as corrige, se possível, o que evita a reconstrução dos índices. Consulte a opção --repair
para uso e limitações.
corruptRecords
Campo na saída de validação
A partir do MongoDB 5.0, o comando validate
e o método auxiliar db.collection.validate()
retornam um novo campo corruptRecords
que contém uma array de valores RecordId
para documentos corrompidos.
maxValidateMemoryUsageMB
Server Parameter
A partir do MongoDB 5.0, o comando setParameter
tem um novo parâmetro maxValidateMemoryUsageMB
, que define o uso máximo de memória para o comando validate
.
findChunksOnConfigTimeoutMS
Server Parameter
A partir do MongoDB 5.0, você pode usar o parâmetro findChunksOnConfigTimeoutMS
para alterar o tempo limite para operações de localização em chunks
.
Opção de perfil de filter
banco de dados
A partir do MongoDB 5.0, você pode definir uma opção filter
para o criador de perfil de banco de dados para determinar quais operações são perfiladas e registradas. Você pode usar a expressão filter
no lugar das opções de perfil slowms
e sampleRate
.
Consulte:
Registrar alterações nas configurações do Database Profiler
A partir do MongoDB 5.0, as alterações feitas no profiler de banco de dados level
, slowms
, sampleRate
ou filter
usando o comando profile
ou o método wrapper db.setProfilingLevel()
são registradas no log file
.
Rotação de registro independente para registros de servidor e auditoria
A partir do MongoDB 5.0, quando a auditoria está ativada, agora você pode girar o servidor e os logs de auditoria independentemente usando o comando logRotate
. Anteriormente, logRotate
rotacionava os dois logs juntos.
remote
Campo em logs de operação lentos
A partir do MongoDB 5.0, as mensagens de registro de operações lentas incluem um campo remote
que especifica o endereço IP do cliente.
remoteOpWaitMillis
Campo de registro
A partir do MongoDB 5.0, você pode usar o campo de registro remoteOpWaitMillis para obter o tempo de espera dos resultados dos fragmentos.
resolvedViews
Campo de log para queries lentas sobre visualizações
A partir do MongoDB 5.0, as mensagens de registro para queries lentas em exibições incluem um campo resolvedViews
que contém os detalhes da exibição.
Defina variáveis usando a let
opção
Iniciando no MongoDB 5.0, os seguintes comandos têm uma opção let
para definir uma lista de variáveis. Isso permite que você melhore a legibilidade do comando separando as variáveis do texto da consulta.
find
comandoComando
findAndModify
e auxiliar de shelldb.collection.findAndModify()
correspondenteComando
update
e auxiliar de shelldb.collection.update()
correspondentedelete
comandodb.collection.remove()
ajudante de shell
O comando update
também tem um campo c
para definir uma lista de variáveis.
Suporte para mapeamento de nome de usuário para DN LDAP por padrão
A partir do MongoDB 5.0, a opção de arquivo de configuração userToDNMapping
e a opção de linha de comando --ldapUserToDNMapping
para mongod
/ mongos
e mongoldap
agora mapeiam o nome de usuário autenticado como o DN LDAP por padrão se for um documento de mapeamento vazio (ou seja, uma string vazia ou uma matriz vazia) é especificado para a opção. Anteriormente, fornecer um documento de mapeamento vazio causaria falha no mapeamento.
dbStats
Estatísticas adicionais de espaço livre
Iniciando no MongoDB 5.0, o comando dbStats
gera estas estatísticas adicionais:
Espaço livre alocado para collections (
freeStorageSize
)Espaço livre alocado para índices (
indexFreeStorageSize
)Espaço livre total alocado para coleções e índices (
totalFreeStorageSize
)
serverStatus
Alteração de saída
serverStatus
inclui os seguintes novos campos em sua saída:
- Métricas de agregação
- Métricas de versão da API
- Métricas de replicação
- Ler contadores de preocupações
readConcernCounters
, que informa sobre o nível de preocupação de leitura especificado pelas operações de query(readConcernCounters
substituiopReadConcernCounters
)readConcernCounters
agora tem os seguintes novos campos:readConcernCounters.nonTransactionOps.noneInfo
readConcernCounters.transactionOps.noneInfo
- Contadores de write concern
opWriteConcernCounters
agora tem os seguintes novos campos:opWriteConcernCounters.insert.noneInfo
opWriteConcernCounters.update.noneInfo
opWriteConcernCounters.delete.noneInfo
- Número de conexões roscadas
connections.threaded
, que relata o número de conexões recebidas de clientes que são atribuídas a threads que o cliente de serviço solicita
- Estatísticas de refragmentação
shardingStatistics.resharding
, que relata estatísticas sobre operações de refragmentação
- Métricas do executor do serviço
network.serviceExecutors
, que informa sobre os executores de serviço que executam operações para solicitações de clientes
- Métricas do cursor
metrics.cursor.moreThanOneBatch
, que relata o número total de cursores que retornaram mais de um lote (lotes adicionais são recuperados usando o comandogetMore
)metrics.cursor.totalOpened
, que relata o número total de cursores que foram abertos
- Contador de segurança
security.authentication.saslSupportedMechsReceived
, que informa o número de vezes que uma solicitação dehello
inclui um campo dehello.saslSupportedMechs
válido.
- Rep.
O
repl
agora inclui um documento doprimaryOnlyServices
que contém informações adicionais sobre serviços que são executados somente em primaries de conjunto de réplicas.
Limite de tamanho das informações de depuração do cache do plano
A partir do MongoDB 5.0, o cache do plano salvará entradas completas de plan cache
somente se o tamanho cumulativo de plan caches
para todas as coleções for inferior a 0,5 GB. Quando o tamanho cumulativo de plan caches
para todas as coleções exceder esse limite, as entradas de plan cache
adicionais serão armazenadas sem determinadas informações de depuração.
O tamanho estimado em bytes de uma entrada plan cache
está disponível na saída de $planCacheStats
.
Fechamento de cursores inativos aberto dentro de uma sessão
A partir do MongoDB 5.0, os cursores criados em uma sessão do cliente são fechados quando a sessão do servidor correspondente termina com o comando killSessions
, se a sessão atingir o tempo limite ou se o cliente tiver esgotado o cursor. Consulte Iterar um cursor no mongosh
.
Novo validateDBMetadata
comando
O MongoDB 5.0 adiciona o comando validateDBMetadata
. O comando validateDBMetadata
verifica se os metadados armazenados de um banco de dados ou de uma collection são válidos em uma determinada versão da API.
Considerações de desempenho
Write concern padrão implícito
O MongoDB 5.0 altera a preocupação de gravação padrão para { w: "majority" }
. A nova preocupação de gravação padrão pode afetar o desempenho, pois o MongoDB reconhece as gravações somente depois que uma maioria calculada de membros do conjunto de réplicas tiver executado e persistido a gravação no disco.
Se o seu aplicativo depender de gravações sensíveis ao desempenho, você poderá substituir a preocupação de gravação padrão ao custo de garantias de durabilidade dos dados. Para substituir essa configuração, você pode:
Defina a preocupação de gravação no nível de operação individual para gravações críticas de desempenho. Para obter mais informações, consulte a documentação do driver.
Use o comando
setDefaultRWConcern
para definir explicitamente a preocupação de gravação padrão.
Aviso
Se as operações de gravação usarem a preocupação de gravação { w: 1 }
, o diretório de rollback poderá excluir as gravações enviadas após um oplog hole se o primário for reiniciado antes que a operação de gravação seja concluída.
local
Preocupação de leitura padrão
A partir do MongoDB 5.0, "local"
é o read concern padrão para operações de leitura contra o primary e o secundário.
Isso pode introduzir um aumento significativo de latência para queries de contagem que usam um filtro e para queries cobertas.
Você pode desativar esse comportamento definindo a preocupação de leitura em todo o cluster com setDefaultRWConcern
.
Retenção do Histórico de Snapshot
O MongoDB 5.0 aumenta o valor padrão de minSnapshotHistoryWindowInSeconds
para 300
, o que pode impactar negativamente o desempenho. Se você não estiver usando a preocupação de leitura "snapshot"
, poderá reduzir o valor do parâmetro minSnapshotHistoryWindowInSeconds
para 5
em todas as mongod
instâncias. Para obter mais informações, consulte Retenção do histórico de snapshots.
Observação
Se você estiver executando um cluster fragmentado, não altere minSnapshotHistoryWindowInSeconds
nos servidores de configuração.
Suporte a plataformas
Microarquitetura mínima
O MongoDB 5.0 introduz os seguintes requisitos mínimos de microarquitetura:
CPU | Microarquitetura mínima suportada |
---|---|
Intel x86_64 | MongoDB 5.0 requer um dos seguintes:
|
AMD x86_64 | O MongoDB 5.0 exige AMD Bulldozer ou posterior. |
BRAÇO arm64 | O MongoDB 5.0 exige ARMv8,2-A ou posterior. |
O MongoDB v5.0 não é compatível com plataformas x86_64
ou arm64
que não atendam a esses requisitos mínimos de microarquitetura.
Consulte Suporte à plataforma x86_64 para obter mais informações.
Plataformas removidas
O MongoDB 5.0 remove a compatibilidade com as seguintes plataformas:
Consulte Suporte à plataforma para obter a lista completa de plataformas e arquiteturas suportadas no MongoDB 5.0.
Alterações que afetam a compatibilidade
Algumas alterações podem afetar a compatibilidade e podem exigir ações do usuário. Para obter uma lista detalhada de alterações de compatibilidade, consulte Alterações de compatibilidade no MongoDB 5.0.
Procedimentos de atualização
Importante
Versão de compatibilidade de recursos
Para atualizar para o MongoDB 5.0 a partir de um sistema 4.4, o sistema 4.4 deve ter featureCompatibilityVersion
configurado como 4.4
. Para verificar a versão:
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
Para atualizar para o MongoDB 5.0, consulte as instruções de atualização específicas para a implantação do MongoDB.
Se precisar de orientação sobre como atualizar para a versão 5.0, os serviços profissionais do MongoDB viabilizam o upgrade da versão principal para ajudar a garantir uma transição sem percalços, sem interrupção para o seu aplicativo do MongoDB.
Consideração de rebaixamento
O MongoDB suporta apenas downgrades de versão única. Você não pode fazer o downgrade para uma versão que esteja várias versões atrás da versão atual.
Por exemplo, você pode desatualizar uma série 5.0 para uma série 4.4. No entanto, não há suporte para desatualização adicional dessa implantação série 4.4 para uma implantação série 4.2.
Download
Para baixar o MongoDB 5.0, acesse a Central de download do MongoDB.
Problemas conhecidos
Na versão | Problemas | Status |
---|---|---|
5.0.0 | SERVIDOR-58171: o parâmetro de uma coleção Time Series granularity não pode ser modificado após a criação da coleção. | Corrigido em 5.0.1 |
5.0.0 | SERVER-58392: uma operação de refragmentação contínua pode impedir que a realização de operações de backup ou restauração. | Corrigido em 5.0.3 |
Relatar um problema
Para relatar um problema, consulte o repositório MongoDB no GitHub para obter instruções sobre como arquivar um ticket do JIRA para o servidor MongoDB ou um dos projetos relacionados.