MongoDB: Какой смысл использовать MapReduce без parallelism?

Цитата http://www.mongodb.org/display/DOCS/MapReduce#MapReduce-Parallelism

Как сейчас, задания MapReduce на одиночный процесс mongod - один резьба. Это связано с дизайном ограничение в текущем JavaScript двигатели. Мы изучаем альтернативы для решения этой проблемы, но пока вы хотите распараллелить ваших заданий MapReduce, вам нужно будет либо используйте осколки, либо выполните агрегирование клиентской стороны в вашем коде.

Без parallelism, каковы преимущества MapReduce по сравнению с более простыми или более традиционными методами для запросов и агрегации данных?

Чтобы избежать путаницы: вопрос НЕ "в чем преимущества документально-ориентированной БД над традиционной реляционной БД"

Ответы

Ответ 1

Основная причина использования MapReduce по более простым или более традиционным запросам заключается в том, что он просто может делать вещи (например, агрегацию), которые простые запросы не могут.

Как только вам понадобится агрегация, есть два варианта использования MongoDB: MapReduce и групповая команда. Групповая команда аналогична SQL "group by" и ограничена тем, что она должна возвращать все свои результаты в одном ответе базы данных. Это означает, что группа может использоваться только тогда, когда у вас меньше 4 МБ результатов. MapReduce, с другой стороны, может делать что угодно, "группа", но выводит результаты в новую коллекцию, поэтому результаты могут быть настолько большими, насколько это необходимо.

Кроме того, parallelism подходит, поэтому хорошо иметь некоторую практику:)

Ответ 2

M/R уже параллелен в MongoDB, если вы используете осколочный кластер. В любом случае, это основная точка M/R - чтобы вычислить на одном и том же node данные.

Ответ 3

сверхбыстрая карта/сокращение находится в дорожной карте

он не будет в версии 1.6 (летняя версия)

настолько поздно в этом году, вероятно,