Opções de implantação do Atlas Search
Visão geral
É possível estruturar seu Atlas 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, o provedor de nuvem e a região, e as camadas do cluster e Atlas Search para executar a Atlas Search vetorial.
ambiente | Tipo de implementação | Camada do cluster | Região do provedor de nuvem | Arquitetura de nó |
---|---|---|---|---|
Testando queries | Shared or dedicated cluster Local deployment | M0 , Flex, M2 , M5 , or higher tierN/A | All N/A | Processos do MongoDB e Atlas Search executados no mesmo nó |
Aplicativos de protótipos | Cluster dedicado, fragmentado ou não fragmentado |
| 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 |
| Amazon Web Services e Azure em algumas regiões do 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:
Ambientes de teste e protótipos
Para testar suas queries de pesquisa e criar um protótipo de seu aplicação, recomendamos o tipo de implantação e a arquitetura de nó descritas nas seções a seguir.
Esta configuração é mais adequada para os seguintes casos de uso:
Menos de 2M de documentos no total para indexar
Menos de 10GB de dados indexados
Menos de 10,000 queries em um período de 7dias
Se o seu uso exceder os valores listados, migre para nós de pesquisa dedicados.
As seções a seguir descrevem essa arquitetura de nó em mais detalhes.
- Tipo de implementação
Para testar queries do Atlas Search em clusters na nuvem, você pode implantar um cluster dedicado.
Para testar queries do Atlas Search localmente, crie um sistema local do Atlas usando o Atlas CLI. Pode ser um conjunto de réplicas de um único nó hospedado em seu computador local. As implantações locais são limitadas pelos recursos de CPU, memória e armazenamento de sua máquina local. Quando seu aplicação 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 Atlas Search , use clusters gratuitos (
M0
), Flex e clustersM2
eM5
compartilhados (obsoleto).Para criar um protótipo de seu aplicação, use clusters dedicados
M10
,M20
e de nível superior, ou implemente nós de pesquisa dedicados para isolamento do volume de trabalho. Quando seu aplicação estiver pronto para produção e para lidar com grandes conjuntos de dados, faça o upgrade para níveis superiores.- Provedor de nuvem e região
Use qualquer região de provedor de nuvem suportada.
O provedor de nuvem e a região escolhida afetam as opções de configuração disponíveis para as camadas do cluster e o custo de execução do cluster.
Arquitetura de nó
Para ambientes de teste e protótipos, recomendamos uma arquitetura de nó na qual os processos do MongoDB e do Atlas Search sejam executados no mesmo nó. No diagrama a seguir deste modelo de implantação, o processo mongot
do Atlas Search é executado juntamente com mongod
em cada nó no Atlas cluster e eles compartilham os mesmos recursos.

Por padrão, o Atlas habilita o processo mongot
do Atlas Search no mesmo nó que executa o processo mongod
quando você cria seu primeiro índice do Atlas Search .
Quando você executa uma query, o Atlas Search utiliza a preferência de leitura configurada para identificar o nó no qual executar a query. A query primeiro vai para o processo do MongoDB, que é mongod
para um cluster de conjunto de réplicas ou mongos
para um cluster fragmentado.
Para um cluster de conjunto de réplicas, o processo mongod
roteia a query para mongot
no mesmo nó. Para clusters fragmentados, os dados do cluster são particionados em instâncias mongod
(shards) e cada processo mongot
só pode acessar os dados na instância mongod
no mesmo nó. Portanto, você não pode executar queries do Atlas Search que tenham como alvo um shard específico. mongos
roteia a query para todos os shards, fazendo estas dispersar e reunir queries. Se você usar zonas para distribuir uma coleção fragmentada em um subconjunto dos shards no cluster, o Atlas Search roteará a consulta para a zona que contém os fragmentos da coleção que você está consultando e executará suas $search
queries apenas nos fragmentos onde a coleção está localizada.
Depois que a query é roteada para um processo mongot
do Atlas Search, o processo mongot
executa a pesquisa e a pontuação e retorna os IDs dos documento e outros metadados de pesquisa dos resultados correspondentes para o processo mongod
correspondente. O processo mongod
então realiza uma pesquisa completa do documento implicitamente para os resultados correspondentes e retorna os resultados ao cliente. Se você usar a opção $search
concurrent em sua query, o Atlas Search ativará o paralelismo intraquery. Para saber mais, consulte Parallelize Query Execution Across Segments.
Para saber mais sobre o processo mongot
, consulte Processamento de query.
Você pode definir campos de origem armazenados no seu índice do Atlas Search para que o processo mongot
possa armazenar os campos especificados em mongot
. Você pode então usar a opção returnStoredSource na sua query do Atlas Search para recuperar os campos armazenados para documentos correspondentes diretamente de mongot
em vez de fazer uma pesquisa completa de documentos no banco de dados.
Veja também:
Benefícios
Quando você habilita o Atlas Search, pode facilmente construir uma pesquisa em cima de seus dados com um mecanismo de pesquisa integrado e totalmente gerenciado que se sincroniza automaticamente com seu banco de dados. O Atlas Search fornece uma linguagem de query avançada que usa estágios de pipeline de agregação do Atlas Search, como $search
e $searchMeta
para pesquisa de texto completo e $vectorSearch
para pesquisa semântica em conjunto com outros estágios de 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.
Limitações
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.
Custo
Não há taxas ou encargos adicionais quando você ativa a O Atlas Search no seu Atlas cluster. No entanto, é possível observar um aumento na utilização de recursos no cluster para grandes collections indexadas ou definições de índice.
Considerações
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 Se 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 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. |
| Durante uma atualização de versão do |
Novo nó | 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ó |
Reinicialização ou substituição da instância |
|
| Sempre que o processo |
Ambiente de produção
Para seu aplicação pronto para produção , recomendamos usar o tipo de sistema e a arquitetura de nó descritos nas seções a seguir.
Esta 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 Atlas Search nas regiões e zonas onde o Atlas 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 camadas de cluster dedicado superiores. 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 implemente nós de pesquisa dedicados. Se seus requisitos de pesquisa aumentarem, você poderá escalar seu sistema de pesquisa independentemente de escalar os 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 AWS e do Azure. Você deve selecionar um provedor de nuvem e uma região onde os nós de pesquisa estejam disponíveis para sua implementação.
Todas as camadas de cluster estão disponíveis em regiões de provedor de nuvem suportadas. O provedor de nuvem e a região escolhidos afetam as opções de configuração e os níveis de pesquisa disponíveis para o cluster, e o custo de execução do cluster.
Arquitetura de nó
Para ambientes de produção, recomendamos uma arquitetura de nó na qual os processos do MongoDB e do Atlas 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 implantação, o processo mongot
do Atlas Search é executado em nós de pesquisa dedicados, que são separados dos nós do cluster nos quais o processo mongod
é executado.

O Atlas implementa nós de pesquisa com cada cluster ou com cada shard 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.
Ao implantar nós de pesquisa separados, o Atlas atribui automaticamente um mongod
para cada mongot
para indexação. O mongot
comunica com o mongod
para ouvir e sincronizar as alterações de índice para os índices que armazena. O Atlas Search indexa e processa suas queries de forma semelhante a um sistema em que os processos mongod
e mongot
são executados no mesmo nó. Para saber mais, consulte Gerenciar Índices do Atlas Search e Queries e Índices. Para saber mais sobre como implantar nós de pesquisa separadamente, consulte Nós de pesquisa para isolamento de volume de trabalho.
Quando você migra para os Nós de Pesquisa, o Atlas implanta os Nós de Pesquisa, mas não atende a queries nos nós até que ele crie com êxito todos os índices no cluster nos Nós de Pesquisa. Enquanto o Atlas cria os índices nos novos nós, ele continua a atender queries usando os índices nos nós do cluster. O Atlas começa a atender queries dos nós de pesquisa somente depois de criar com êxito os índices nos nós de pesquisa e remover os índices nos nós do cluster.
Quando você executa uma query, a query é roteada para mongod
com base na preferência de leitura configurada. O processo mongod
encaminha a query de pesquisa por meio de um balanceador de carga no mesmo nó, que distribui as solicitações entre todos os processos mongot
.
O Atlas Search mongot
executa a pesquisa e pontuação e retorna os IDs dos documentos e metadados dos resultados correspondentes para mongod
. Em seguida, o mongod
executa uma pesquisa completa de documentos para os resultados correspondentes e retorna os resultados para o cliente. Se você usar a opção $search
concorrente em sua query, o Atlas Search ativará o paralelismo intraquery. Para saber mais, consulte Paralelizar a execução de query entre segmentos.
Se você excluir todos os nós de pesquisa em seu cluster, haverá uma interrupção no processamento dos resultados da query de pesquisa. Para saber mais, consulte Modificar um cluster. Se você excluir seu agrupamento do Atlas, o Atlas pausará e então excluirá todos os sistemas do Atlas Search associados (processosmongot
).
Você pode definir campos de origem armazenados no seu índice do Atlas Search para que o processo mongot
possa armazenar os campos especificados em mongot
. Você pode então usar a opção returnStoredSource na sua query do Atlas Search para recuperar os campos armazenados para documentos correspondentes diretamente de mongot
em vez de fazer uma pesquisa completa de documentos no banco de dados.
Benefícios
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
Ao implantar nós de pesquisa separados, você pode escalar o armazenamento e a computação independentemente do cluster MongoDB . Isso permite que você também dimensione a carga de consulta 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 Atlas Search distribui queries de pesquisa em todos os nós de pesquisa disponíveis.
Para escalar os nós de pesquisa verticalmente, selecione diferentes níveis de pesquisa, configurações de CPU, RAM e armazenamento que ofereçam suporte às 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
emongot
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 ao Atlas Search pesquisar 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.
Dicas para dimensionar e dimensionar nós de pesquisa
Para determinar os requisitos de memória para Nós de Pesquisa, use as seguintes métricas do Atlas :
Tamanho do Índice de Pesquisa
RAM total no nó de pesquisa
Considere um aplicação que tenha um 10Índice de pesquisa GB e 4GB de RAM total no nó de pesquisa. Nesse caso, se 1GB de RAM for usado por outros processos e somente 3GB estiverem disponíveis para os dados do índice, os 7GB restantes dos dados do índice (10GB - 3GB = 7GB) é paginado, conforme necessário, do disco. A paginação frequente do disco causa mais falhas de página, E/S de disco e IOWait de CPU, resultando em degradação de desempenho.
Se você usar uma camada do cluster de pesquisa maior com mais RAM, como 8GB ou mais, isso permitirá que o Atlas forneça a maioria dos dados para o índice de pesquisa a partir da memória, minimizando leituras de disco e falhas de página, melhorando assim 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.
Custo dos Nós de Pesquisa
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 NVMe com uso intensivo de computador. Você deve distribuir um mínimo de dois nós. Você será cobrado diariamente pelo uso de recursos por hora por nó. Para saber mais, consulte Custo do nó de pesquisa.
Habilitar Encryption at rest
Você pode ativar a Encryption at rest com o Customer Key Management para todos os dados nos nós de pesquisa para proteger suas cargas de trabalho do Atlas Search com chaves de criptografia gerenciadas pelo cliente. Para saber mais, consulte Habilitar gerenciamento de chaves do cliente para nós de pesquisa.
No momento, esse recurso está disponível apenas para o AWS KMS.
Adicionar nós de pesquisa dedicados
Adicionar nós de pesquisa dedicados a um novo cluster permite:
Altere o tamanho e a escala do seu sistema de pesquisa independentemente do cluster.
Elimine a contenção de recursos que você pode enfrentar em um cluster que executa o banco de dados MongoDB e os processos de pesquisa no mesmo nó.
Para adicionar nós de pesquisa dedicados:
Crie seu cluster como um
M10
ou nível superior em um provedor de nuvem e 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.Habilite Search Nodes for workload isolation e configure nós de pesquisa.
Migrar para nós dedicados do Atlas Search
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:
Se o seu sistema utilizar um cluster Flex ou um cluster de camada compartilhada, altere a camada do cluster para um nível superior. Os nós de pesquisa dedicados são suportados somente para
M10
e camadas de cluster superiores.Implemente seu cluster em regiões onde Nós de Pesquisa também estão disponíveis. Os nós de pesquisa dedicados estão disponíveis em um subconjunto das regiões da AWS e do Azure, e em todas as regiões do Google Cloud compatíveis. Se o cluster existente estiver hospedado em regiões onde os nós de pesquisa não estão disponíveis, migre-o para regiões onde os nós de pesquisa estão disponíveis. Para saber mais, consulte Regiões do fornecedor de nuvem que permitem isolamento de nó.
Habilite Search Nodes for workload isolation e configure nós de pesquisa. Para saber mais, consulte Adicionar nós 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 encaminha as queries de pesquisa para os Nós de Pesquisa.
O Atlas Search utiliza os índices de pesquisa para atender queries no Atlas cluster.
Solucionar problemas de implantação
Failed to Execute search Command
Erro
Se você implantar mongot
para ser executado junto com mongod
e não configurar os Nós de Pesquisa, mongot
poderá encerrar 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, mongod
usará um proxy que roteia as queries de pesquisa somente para os nós íntegros onde o processo mongot
está ativo.