복붙노트

[MONGODB] -지도 감소 MongoDB를 2.2, 2.4의 성능을, 2.6

MONGODB

-지도 감소 MongoDB를 2.2, 2.4의 성능을, 2.6

MongoDB를 : 끔찍한 맵리 듀스 성능 나는이 토론을 발견했습니다. 기본적으로는이 단일 스레드 및 모든에서 실시간 있어야로 몽고의 MR 쿼리를 피하려고했다. 2 년 경과, 나는 시간 이후 변경되었습니다 궁금해. 이제 우리는 MongoDB의 2.2 있습니다. 나는 부인이 지금 듣고 멀티 스레드. 웹 응용 프로그램 빈번한 HTTP 요청을 가져 오는 데이터와 같은 실시간 요청에 대한 MR의 사용을 통해 아이디어를 공유하시기 바랍니다. 효과적으로 인덱스를 사용할 수 있습니까?

해결법

  1. ==============================

    1.다음지도에 대한 기능의 현재 상태는 / MongoDB를에 감소

    다음지도에 대한 기능의 현재 상태는 / MongoDB를에 감소

    1)지도에 대한 성능 제한의 대부분은 / 정지 감소 MongoDB를 버전 2.2에 남아 있습니다. 지도는 / 엔진을 절감하는 것은 여전히 ​​모든 레코드 GET 실제 계산 (느린) 포함 된 자바 스크립트 엔진을 사용하여 수행하고 있으며, 아직 단 하나의 자바 스크립트를 실을 수있는 하나의 글로벌 자바 스크립트 잠금이,이, JSON에 BSON으로 변환해야합니다 한 번에 실행합니다.

    지도에 몇 가지 증분 개선이 있었다 / 분산됩니다 클러스터에 줄입니다. 특히, 줄이기 최종 동작을 여러 파편에 분산되어, 출력이 병렬로 분산됩니다된다.

    나는 /지도를 추천 MongoDB를 버전 2.2에서 실시간 집계 감소하지 않을

    2) MongoDB를 2.2부터 이제 새로운 집계 프레임 워크가있다. 이는 집계 작업의 새로운 구현, C ++로 작성, 단단히 MongoDB를 프레임 워크에 통합되어 있습니다.

    대부분의지도 / 축소 작업은 집계 프레임 워크를 사용하여 다시 작성할 수 있습니다. 그들은 일반적으로 빠르게 실행 (지도 대 20 배 속도 향상 / 축소 버전 2.2에서 일반적이다), 그들이 기존의 쿼리 엔진을 최대한 활용, 당신은 병렬로 여러 집계 명령을 실행할 수 있습니다.

    당신이 실시간 집계 요구 사항이있는 경우, 시작하는 첫 번째 장소는 집계 프레임 워크입니다. 집계 프레임 워크에 대한 자세한 내용은 다음 링크에서보세요 :

    3)지도에서 상당한 개선이 있었다 / MongoDB를 버전 2.4에서 줄일 수 있습니다. 의 SpiderMonkey 자바 스크립트 엔진은 V8 자바 스크립트 엔진에 의해 대체되지 않은, 그리고 글로벌 자바 스크립트 잠금, 여러지도 축소 / 스레드가 동시에 실행 할 수있는 수단이 더 이상 존재한다.

    지도는 / 두 가지 이유를 들어, 엔진이 상당히 느린 집계 프레임 워크에 비해 여전히 감소 :

    지도에 큰 변화가 / 2.4와 2.6 사이에 줄이 없습니다 있습니다.

    나는 아직도 /지도를 사용하는 것이 좋습니다 MongoDB를 버전 2.4 또는 2.6의 실시간 집계 감소하지 않습니다.

    당신이 정말로지도 / 축소해야하는 경우 4), 당신은 또한 하둡 어댑터 볼 수 있습니다. 자세한 내용은 여기에 있습니다 :

  2. from https://stackoverflow.com/questions/12678631/map-reduce-performance-in-mongodb-2-2-2-4-and-2-6 by cc-by-sa and MIT license