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 (летняя версия)
настолько поздно в этом году, вероятно,