Docs Menu

맵-동시성 감소

참고

맵 리듀스의 대안으로서의 집계 파이프라인

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 인스턴스에 대한 모든 작업을 차단합니다.