찾다

 >  Q&A  >  본문

nosql - MongoDB的MR问题!

听说mongodb的MapReduce是单线程的,性能很差,这是怎么回事?差到什么程度呢??有哪位大侠能说说原理。

怪我咯怪我咯2767일 전779

모든 응답(3)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-21 11:18:15

    내부 실행이 싱글 스레드인지는 모르겠지만 프로덕션 환경이라면 매번 mapReduce 결과에 직접 액세스하지 않는 것이 가장 좋지만 데이터 크기에 따라 여전히 시간이 걸립니다. 일정 시간. 우리의 데이터는 수천만 개에 달하며 mapReduce를 실행할 때마다 약 5~6초가 소요됩니다. 다행히 우리 애플리케이션은 실시간이 아닙니다. 따라서 기본적으로 2시간 동안 데이터를 캐싱한 후 mapReduce를 실행하여 최신 결과를 얻습니다.

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-21 11:18:15

    이 기사에서는 mongodb의 성능 문제에 대해 설명할 것 같습니다!
    http://stackoverflow.com/questions/39...

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-21 11:18:15

    MapReduce를 사용하기 전에 비슷한 작업을 수행했지만 시간이 많이 걸리기 때문에 나중에 통계에 집계 쿼리를 사용하도록 수정했습니다.

    으아아아

    기본 문서 모델은 위와 같으며, accountId와 태그로 인덱싱했습니다

    으아아아

    이제 사용자 아래의 태그 수를 계산해야 합니다. MapReduce는 다음과 같이 설계되었습니다.

    으아아아

    결과:

    으아아아

    위의 테스트를 수행하기 위해 소량의 데이터 10W를 사용하여 효과를 얻은 것 같습니다.

    으아아아

    내 모의 데이터가 비교적 단순하고 규칙적이기 때문에 스캔한 문서 수의 거의 두 배에 달하는 계산 횟수를 확인할 수 있었습니다. 나중에 테스트를 위해 무작위 데이터를 사용했는데 결과가 더욱 나빴다는 것을 알 수 있었습니다. 저는 과감하게 MapReduce 구현을 포기하고 다른 구현을 사용하도록 변경했습니다.

    회신하다
    0
  • 취소회신하다