맵-동시성 감소
참고
맵 리듀스의 대안으로서의 집계 파이프라인
MongoDB 5.0 부터 맵 리듀스 는 더 이상 사용되지 않습니다.
맵 리듀스 대신 집계 파이프라인을 사용해야 합니다. 집계 파이프라인은 맵 리듀스보다 성능과 유용성 측면에서 더 우수합니다.
4}
$group
$merge
, 등과 같은 집계 파이프라인 단계를 사용하여 맵 축소 연산을 다시 작성할 수 있습니다.사용자 지정 기능이 필요한 맵 리듀스 작업의 경우
$accumulator
및$function
집계 연산자를 사용할 수 있습니다. 이러한 연산자를 사용하여 JavaScript에서 사용자 지정 집계 표현식을 정의할 수 있습니다.
맵 리듀스 대안으로서의 집계 파이프라인 예시는 다음을 참조하세요.
맵 리듀스 작업은 입력 collection에서 읽기, map
함수 실행, reduce
함수 실행, 처리 중 임시 collection에 쓰기, 출력 collection에 쓰기 등 많은 작업으로 구성됩니다.
작업 중에 map-reduce는 다음과 같은 잠금을 사용합니다.
읽기 단계에서는 읽기 잠금(read lock)을 사용합니다. 100개의 문서마다 생성됩니다.
임시 컬렉션에 대한 삽입은 단일 쓰기에 대해 쓰기 잠금(write lock)을 사용합니다.
출력 collection이 존재하지 않는 경우, 출력 collection을 만들 때는 쓰기 잠금 (write lock)이 필요합니다.
출력 컬렉션이 존재하는 경우 출력 작업(예:
merge
,replace
,reduce
)는 쓰기 잠금(write lock)을 사용합니다. 이 쓰기 잠금 (write lock)은 글로벌 이며mongod
인스턴스에 대한 모든 작업을 차단합니다.