Menu Docs
Página inicial do Docs
/
Atlas
/ / / /

Paralelizar a execução de queries entre segmentos

A opção concurrent habilita o paralelismo intraconsulta. Nesse modo, o MongoDB Search utiliza mais recursos, mas melhora cada latência de query individual. Esse recurso só está disponível para nós de pesquisa dedicados.

Quando você executa queries com a opção concurrent, o MongoDB Search não garante que cada query será executada simultaneamente. Por exemplo, quando muitas queries simultâneas são enfileiradas, o MongoDB Search pode voltar para a execução de thread único.

concurrent tem a seguinte sintaxe:

{
"$searchMeta"|"$search": {
"index": "<index name>", // optional, defaults to "default"
"<operator>": {
<operator-specifications>
},
"concurrent": true | false,
...
}
}

A opção booleana concurrent permite solicitar o MongoDB Search para paralelizar a execução de queries entre segmentos, o que, em muitos casos, melhora o tempo de resposta. Você pode configurar um dos seguintes valores para a opção concurrent:

  • true - para solicitar o MongoDB Search para executar a query em várias threads

  • false - para executar a query de thread único (padrão)

O MongoDB Search oferece controle sobre esse comportamento por query para permitir a execução simultânea somente para queries pesadas e de longa duração, o que minimiza a contenção e melhora a taxa de transferência geral da query. A execução simultânea é especialmente eficiente em grandes conjuntos de dados, pois há uma quantidade maior de segmentos.

Considere a seguinte consulta na coleção sample_mflix.movies nos dados de exemplo. A consulta indica uma pesquisa simultânea de filmes que contêm o termo new york no title.

1db.movies.aggregate([
2 {
3 "$search": {
4 "text": {
5 "path": "title",
6 "query": "new york"
7 },
8 "concurrent": true
9 }
10 }
11])

Voltar

Opções de desempenho

Nesta página