Docs Menu
Docs Home
/ /

세그먼트 간 쿼리 실행 병렬화Parallelize Query Execution Across Segments

concurrent 옵션은 쿼리 내 병렬 처리를 활성화합니다. 이 모드 에서는 MongoDB Search가 더 많은 리소스를 사용하지만 각 개별 쿼리 지연 시간 향상됩니다. 이 기능은 전용 검색 노드에서만 사용할 수 있습니다.

concurrent 옵션을 사용하여 쿼리를 실행 때 MongoDB Search는 각 쿼리 동시에 실행된다는 것을 보장하지 않습니다. 예시 를 들어, 너무 많은 동시 쿼리가 대기열에 추가되면 MongoDB Search는 단일 스레드 실행으로 대체될 수 있습니다.

concurrent 의 구문은 다음과 같습니다:

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

concurrent 부울 옵션을 사용하면 MongoDB Search에 세그먼트 간 쿼리 실행을 병렬 처리하도록 요청 수 있으며, 이는 대부분의 경우 응답 시간을 개선합니다. concurrent 옵션에 대해 다음 값 중 하나를 설정하다 수 있습니다.

  • true - MongoDB Search에 쿼리 멀티스레드로 실행 하도록 요청

  • false - 쿼리를 단일 스레드로 실행(기본값)

MongoDB Search는 쿼리별로 이러한 동작을 제어하여 사용량이 많고 오래 실행되는 쿼리에 대해서만 동시 실행을 활성화 경합을 최소화하고 전체 쿼리 처리량 향상시킵니다. 동시 실행은 세그먼트 수가 많기 때문에 대규모 데이터 세트에서 특히 효율적입니다.

샘플 데이터의 sample_mflix.movies 컬렉션에 대한 다음 쿼리를 살펴보세요. 이 쿼리는 titlenew york이라는 텀이 포함된 영화에 대한 동시 검색을 나타냅니다.

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

돌아가기

성능 옵션

이 페이지의 내용