Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Opções de sistema de pesquisa do MongoDB

É possível estruturar seu cluster com diferentes tipos de sistema, provedores de nuvem e camadas de cluster para atender às necessidades de um ambiente de pré-produção ou produção. Use essas recomendações para selecionar o tipo de sistema, provedor de nuvem e região, e cluster e níveis de pesquisa para executar a pesquisa vetorial.

ambiente
Tipo de implementação
Camada do cluster
Região do provedor de nuvem
Arquitetura de nó

Testando queries

Flex or cluster dedicado

Local implantação

Cluster gratuito, Flex ou higher tier

N/A

Todos


N/A

Processos do MongoDB e Atlas Search executados no mesmo nó

Aplicativos de protótipos

Cluster dedicado, fragmentado ou não fragmentado

M10, M20, ou nível superior

Todos

Processos do MongoDB e Atlas Search executados no mesmo nó

Produção

Cluster dedicado com nós de pesquisa separados, fragmentados ou não fragmentados

M10 ou camada do cluster superior e S20 ou nível de pesquisa superior

Amazon Web Services e Azure em algumas regiões ou Google Cloud Platform em todas as regiões

Processos do MongoDB e Atlas Search executados em nós diferentes

As seções a seguir descrevem cada ambiente:

Para testar suas queries de pesquisa e criar protótipos do seu aplicativo, recomendamos o tipo de implantação e a arquitetura de nó descritos nas seções a seguir.

Essa configuração é mais adequada para os seguintes casos de uso:

  • Menos de 2M de documentos no total para indexar

  • Menos de 10 GB de dados indexados

  • Menos de 10.000 queries em um período de 7 dias

Se seu uso exceder os valores listados, migre para nós de pesquisa dedicados.

As seções a seguir descrevem a arquitetura deste nó em mais detalhes.

Tipo de implementação

Para testar queries do MongoDB Search em clusters na nuvem, você pode implantar um cluster dedicado.

Para testar queries de pesquisa do MongoDB localmente, crie uma implantação local do Atlas usando a Atlas CLI. Pode ser um conjunto de réplicas de nó único hospedado em seu computador local. As implantações locais são limitadas pelos recursos de CPU, memória e armazenamento de seu computador local. Quando seu aplicativo estiver pronto para produção, migre sua implantação local do Atlas para um ambiente de produção.

Cluster Tiers

Para testar suas queries do MongoDB Search, use clusters gratuitos (anteriormente conhecidos como M0) e clusters flexíveis.

Para criar um protótipo de seu aplicativo, use clusters dedicados M10, M20 e de tier superior, ou implante nós de pesquisa dedicados para isolamento da carga de trabalho. Quando seu aplicativo estiver pronto para produção e para lidar com grandes conjuntos de dados, dimensione para tiers mais altos.

Provedor de nuvem e região

Use qualquer região de provedor de nuvem compatível.

O provedor de nuvem e a região escolhidos afetam as opções de configuração disponíveis para as camadas do cluster e o custo de execução do cluster.

Para ambientes de teste e criação de protótipos, recomendamos uma arquitetura de nó na qual os processos do MongoDB e o MongoDB Search sejam executados no mesmo nó. No diagrama a seguir deste modelo de implantação, o processo mongot do MongoDB Search é executado ao lado de mongod em cada nó no Atlas cluster e eles compartilham os mesmos recursos.

Arquitetura do MongoDB Search

Por padrão, o Atlas habilita o processo mongot do MongoDB Search no mesmo nó que executa o processo mongod quando você cria seu primeiro índice do MongoDB Search.

Para aprender como o MongoDB Search processa query nesta arquitetura, consulte Processamento de query.

Você pode definir campos de origem armazenados em seu índice do MongoDB Search para que o processo mongot possa armazenar os campos especificados em mongot. Em seguida, você pode usar a Opção returnStoredSource em sua consulta do MongoDB Search para recuperar os campos armazenados para documentos correspondentes diretamente do mongot em vez de fazer uma pesquisa completa de documento no banco de dados.

Ao ativar o MongoDB Search, você pode criar facilmente a pesquisa sobre seus dados com um mecanismo de pesquisa integrado e totalmente gerenciado que se sincroniza automaticamente com seu banco de dados. O MongoDB Search fornece uma linguagem de query avançada que usa fases do pipeline de agregação do MongoDB Search, como $search e $searchMeta para pesquisa de texto completo e $vectorSearch para pesquisa semântica em conjunto com outras fases do pipeline de agregação do MongoDB e classificação de resultados baseada em pontuação.

Dependendo dos recursos provisionados para seu cluster, a implantação de ambos os processos no mesmo nó pode ser mais econômicas do que executar o processo de pesquisa em um nó dedicado separado.

Você pode enfrentar contenção de recursos entre o banco de dados mongod e os processos de pesquisa mongot. Isso pode impacto negativamente o desempenho do seu índice e a latência das suas queries. Para oferecer suporte a aplicativos prontos para produção e suas cargas de trabalho de pesquisa, migre para nós de pesquisa dedicados.

Não há taxas ou encargos adicionais quando você ativa o MongoDB Search em seu cluster. No entanto, é possível observar um aumento na utilização de recursos no cluster para grandes collections indexadas ou definições de índice.

Como os processos mongod e mongot são executados no mesmo nó, mongot pode ficar indisponível em determinadas circunstâncias. A tabela a seguir descreve as possíveis causas:

Causa
Descrição

Dimensionamento da camada do cluster - Armazenamento de rede

Quando você escala um cluster para cima ou para baixo, o Atlas provisiona uma nova instância. Após a instância estar pronta, o Atlas anexa o armazenamento de rede e inicia mongod e mongot nos novos nós.

Se o mongod começar antes de mongot, as queries do MongoDB Search falharão até que o mongot esteja em execução.

Dimensionamento da camada do cluster - SSD local

Quando você escala um Atlas cluster usando o SSD local, não é possível reter o armazenamento e anexe-o novamente aos novos nós. Portanto, o Atlas executa uma sincronização inicial para reconstruir os índices de pesquisa. As queries de pesquisa falham até que a sincronização inicial seja concluída.

Downgrade do Lucene

Em casos raros em que é necessário fazer o downgrade do Lucene, talvez você não consiga ler os formatos de índice Lucene mais recentes.

Ajuste de armazenamento

Você pode manter o armazenamento de rede conectado aos nós do Atlas cluster. Isso permite que você expanda ou contraia a capacidade de volume sem impacto para mongot.

No entanto, reter o armazenamento de rede pode não ser possível em determinadas regiões, quando o cluster estiver usando discos NVMe locais ou em outras circunstâncias raras. Nesses casos, o Atlas executa uma sincronização inicial e as queries de pesquisa falham até que a sincronização inicial seja concluída.

mongot Atualização da versão

Durante uma atualização de versão do mongot, o Atlas interrompe a versão antiga do mongot e inicia a nova versão. Durante esse breve período, as queries de pesquisa falharão até que o novo mongot esteja ativo.

Novo nó mongod

Quando você adiciona um novo nó ao seu cluster, o Atlas executa uma sincronização inicial para criar os índices de pesquisa. As queries de pesquisa que usam o novo nó mongod falham até que a sincronização inicial seja concluída.

Reinicialização ou substituição da instância

  • Sua instância do Atlas pode ser reiniciada durante o lançamento de uma nova política de segurança ou se seu provedor de nuvem exigir. Enquanto o Atlas é reiniciado, se mongod começar antes de mongot, as queries de pesquisa falharão até que mongot esteja em execução.

  • Sua instância do Atlas pode exigir uma substituição se você tiver hardware não íntegro ou se tiver migrado arquiteturas de sistema. Quando você substitui a instância, mongot executa uma sincronização inicial e as queries de pesquisa falham até que a sincronização inicial seja concluída.

mongot Reiniciar

Sempre que o processo mongot é reiniciado devido a alterações de configuração, as queries de pesquisa falham até que mongot esteja disponível.

Para seu aplicativo pronto para produção, recomendamos usar o tipo de implantação e a arquitetura de nó descritos nas seções a seguir.

Essa configuração é mais adequada para os seguintes casos de uso:

  • Se você optar por migrar seu ambiente de teste existente para a produção, adicione nós de pesquisa dedicados ao seu cluster. Para saber mais, consulte Migrar para nós de pesquisa dedicados.

  • Se você criar um novo sistema de produção do zero, certifique-se de usar clusters de nível M10 ou maiores que ofereçam suporte ao MongoDB Search nas regiões e zonas onde o MongoDB Search está disponível e adicione nós de pesquisa dedicados ao seu ambiente. Para saber mais, consulte Adicionar nós de pesquisa dedicados.

Tipo de implementação

Para aplicativos prontos para produção, use M10, M20 e níveis superiores de cluster dedicado. Esses clusters de nível superior podem lidar com grandes conjuntos de dados e cargas de trabalho de produção.

Recomendamos que você também implante nós de pesquisa dedicados. Se seus requisitos de pesquisa aumentarem, você poderá dimensionar sua implantação de pesquisa independentemente do dimensionamento dos nós do MongoDB.

Provedor de nuvem e região

Use nós de pesquisa em todas as regiões do Google Cloud e em um subconjunto de regiões da AWSe do Azure. Você deve selecionar um provedor de nuvem e uma região em que os nós de pesquisa estejam disponíveis para sua implantação.

Todas as camadas do cluster estão disponíveis em regiões de provedores de nuvem com suporte. O provedor de nuvem e a região que você escolher afetam as opções de configuração e os tiers de pesquisa disponíveis para o cluster e o custo de execução do cluster.

Para ambientes de produção, recomendamos uma arquitetura de nó na qual os processos do MongoDB e os processos do MongoDB Search são executados em nós separados. Para implantar nós de pesquisa separados, consulte Migrar para nós de pesquisa dedicados.

No diagrama a seguir deste modelo de sistema, o processo mongot do MongoDB Search é executado em nós de pesquisa dedicados, que são separados dos nós do cluster nos quais o processo mongod é executado.

Arquitetura de nós de pesquisa separados

O Atlas implanta nós de pesquisa com cada cluster ou com cada fragmento no cluster. Por exemplo, se você implantar dois nós de pesquisa para um cluster com três shards, o Atlas implantará seis nós de pesquisa (dois por shard). Você também pode configurar o número de nós de pesquisa e a quantidade de recursos provisionados para cada nó de pesquisa.

Para aprender como o MongoDB Search processa query nesta arquitetura, consulte Processamento de query.

Você pode definir campos de origem armazenados em seu índice do MongoDB Search para que o processo mongot possa armazenar os campos especificados em mongot. Em seguida, você pode usar a Opção returnStoredSource em sua consulta do MongoDB Search para recuperar os campos armazenados para documentos correspondentes diretamente do mongot em vez de fazer uma pesquisa completa de documento no banco de dados.

A distribuição de nós de pesquisa separados oferece os seguintes benefícios:

Alta disponibilidade
Quando você implanta nós de pesquisa separados, o Atlas aplica um mínimo de dois nós de pesquisa para garantir que sua carga de trabalho permaneça operacional, com tempo mínimo de inatividade, em evento de falha ou interrupção.
Escalabilidade

Quando você implanta nós de pesquisa separados, é possível dimensionar o armazenamento e a computação de forma independente do seu cluster MongoDB. Isso permite que você também dimensione a carga da query independentemente do MongoDB.

Para dimensionar os nós de pesquisa horizontalmente, aumente ou reduza o número de nós de pesquisa. Você pode provisionar de um mínimo de 2 até um máximo de 32 nós de pesquisa. Para equilibrar a carga de query, o MongoDB Search distribui queries de pesquisa em todos os nós de pesquisa disponíveis.

Para dimensionar os nós de pesquisa verticalmente, selecione diferentes níveis de pesquisa, configurações de CPU, RAM e armazenamento que suportem suas cargas de trabalho de texto completo.

Desempenho

Ao implantar nós de pesquisa dedicados, você melhora o desempenho e a utilização de recursos para os processos mongod e mongot e elimina a contenção de recursos entre esses processos.

Os nós de pesquisa dedicados oferecem suporte à pesquisa simultânea de segmentos, o que permite que o MongoDB Search pesquise vários segmentos de índice ao mesmo tempo. O uso da pesquisa simultânea de segmentos melhora o tempo de resposta da query em alguns casos.

Isolamento da carga de trabalho
A implantação de nós de pesquisa dedicados não afeta diretamente a transferência de dados para os nós do banco de dados principal. Os nós de pesquisa lidam com as queries de pesquisa separadamente das operações do banco de dados principal, fornecendo isolamento da carga de trabalho enquanto você incorre em cobranças de rede apenas para o tráfego entre os nós de pesquisa e os nós do banco de dados.

Para determinar os requisitos de memória para os nós de pesquisa, use as seguintes métricas do Atlas:

  • Tamanho do Índice de Pesquisa

  • RAM total no nó de pesquisa

Considere um aplicativo que possui um índice de pesquisa de 10 GB e 4 GB de RAM total no nó de pesquisa. Nesse caso, se 1 GB de RAM for usado por outros processos e apenas 3 GB estiverem disponíveis para os dados de índice, os 7 GB restantes dos dados de índice (10 GB - 3 GB = 7 GB) serão paginados, conforme necessário, do disco. A paginação frequente do disco causa aumento de falhas de página, E/S de disco e IOWait da CPU, resultando em degradação do desempenho.

Se você usar uma camada de cluster de pesquisa mais alta com mais RAM, como 8 GB ou mais, isso permite que o Atlas sirva a maior parte dos dados do índice de pesquisa a partir da memória, minimizando leituras de disco e falhas de página e, com isso, melhorando o desempenho.

Observação

Os SSDs locais usados para nós de pesquisa exigem uma sobrecarga de armazenamento de 20% para permitir operações de indexação.

O MongoDB permite nós de pesquisa separados em clusters dedicados (M10 ou superior). Os nós de pesquisa são distribuídos em instâncias com uso intensivo de computador com armazenamento local de alto desempenho. Você deve implantar um mínimo de dois nós. Você será cobrado diariamente pelo uso de recursos por hora por nó. Para saber mais, consulte Custos de nó de pesquisa.

Por padrão, os processos de pesquisa e MongoDB são executados nos mesmos nós. Com essa arquitetura, a criptografia gerenciada pelo cliente se aplica aos dados do seu banco de dados , mas não se aplica aos índices de pesquisa.

Quando você habilita nós de pesquisa dedicados, os processos de pesquisa são executados em nós separados. Isso permite que você ative criptografia de dados do nó de pesquisa, para que possa criptografar os dados do banco de dados e os índices de pesquisa com as mesmas chaves gerenciadas pelo cliente para uma cobertura abrangente de criptografia.

Observação

Os nós de banco de dados e os nós de pesquisa usam métodos de criptografia diferentes com as mesmas chaves gerenciadas pelo cliente. Os nós de banco de dados usam o WiredTiger Mecanismo de armazenamento criptografado, enquanto os nós de pesquisa usam criptografia no nível do disco.

Para saber mais, consulte Ativar o gerenciamento de chaves do cliente para nós de pesquisa.

Importante

Este recurso está disponível em todos os provedores de KMS, mas os nós de pesquisa devem estar na AWS.

Adicionar nós de pesquisa dedicados a um novo cluster permite:

  • Altere o tamanho e a escala da sua implantação de pesquisa independentemente da sua implantação de banco de dados.

  • Eliminar a contenção de recursos que você possa enfrentar em um cluster que executa o banco de dados MongoDB e os processos de pesquisa no mesmo nó.

Para implantar nós de pesquisa dedicados, você deve ter acesso ao Project Owner projeto.

Para adicionar nós de pesquisa dedicados:

  1. Crie seu cluster como um tier M10 ou superior em um provedor de nuvem e em uma região que ofereça suporte ao isolamento de nós. Para saber mais, consulte Criar um cluster.

    Os nós de pesquisa dedicados são compatíveis apenas com camadas de cluster M10 ou superiores e em regiões de provedor de nuvem que oferecem suporte ao isolamento de nós.

  2. Habilite Search Nodes for workload isolation e configure os nós de pesquisa.

Para migrar da preparação para a produção e adicionar nós de pesquisa dedicados, faça as seguintes alterações no seu sistema de preparação e protótipo existente:

  1. Se a implantação utiliza um cluster Flex, mude a camada do cluster para um tier mais alto. Nós de pesquisa dedicados são suportados apenas para M10 e camadas do cluster superiores.

  2. Implante seu cluster em regiões onde os nós de pesquisa também estejam disponíveis. Nós de pesquisa dedicados estão disponíveis em um subconjunto das regiões da Amazon Web Services e do Azure e em todas as regiões compatíveis do Google Cloud Platform. Se o seu cluster existente estiver hospedado em regiões onde os nós de pesquisa não estão disponíveis, migre seu cluster para regiões onde os nós de pesquisa estão disponíveis. Para saber mais, consulte Regiões do provedor de nuvem que oferecem suporte ao isolamento de nós.

  3. Habilite Search Nodes for workload isolation e configure nós de pesquisa. Para saber mais, consulte Adicionar nó de pesquisa.

    Quando você distribui nós de pesquisa dedicados, a seguinte sequência de ações ocorre:

    • O Atlas cria os índices de pesquisa nos nós de pesquisa e remove os índices dos nós do cluster.

    • O Atlas direciona as queries de pesquisa para os nós de pesquisa.

    • O MongoDB Search usa os índices de pesquisa para atender às queries em seu cluster.

Se você implantar mongot para executar junto com mongod e não configurar os nós de pesquisa, mongot pode ser encerrado e retornar o erro Failed to Execute search Command durante qualquer um dos seguintes eventos:

  • Aumentando um cluster

  • Failover de nó

  • Atualizando mongot

Se você implantar mongot em nós de pesquisa dedicados, o mongod usará um provisionamento que roteia queries de pesquisa apenas para os nós íntegros em que o processo mongot está ativo.