2010-05-08 7 views
13

Citando http://www.mongodb.org/display/DOCS/MapReduce#MapReduce-ParallelismMongoDB: ¿De qué sirve utilizar MapReduce sin paralelismo?

A partir de ahora, los trabajos de MapReduce en un proceso mongod sola son solo roscado. Esto se debe a una limitación de diseño en los motores actuales de JavaScript . Estamos buscando en alternativas para resolver este problema, pero por ahora si desea paralelizar sus trabajos de MapReduce, necesitará usar sharding o hacer la agregación del lado del cliente en su código.

Sin paralelismo, ¿cuáles son los beneficios de MapReduce en comparación con los métodos más simples o más tradicionales para las consultas y la agregación de datos?

Para evitar confusiones: la pregunta no es "¿Cuáles son los beneficios de la base de datos orientada a documentos sobre DB relacional tradicional"

Respuesta

11

La razón principal para usar MapReduce sobre las consultas tradicionales más simples o más es que simplemente puede hacer cosas (es decir, agregación) que las consultas simples no pueden.

Una vez que necesita la agregación, hay dos opciones que usan MongoDB: MapReduce y el comando de grupo. El comando de grupo es análogo al "grupo por" de SQL y está limitado en cuanto a que debe devolver todos sus resultados en una sola respuesta de base de datos. Eso significa que el grupo solo se puede usar cuando tienes menos de 4 MB de resultados. MapReduce, por otro lado, puede hacer cualquier cosa que pueda hacer un "grupo por", pero genera resultados en una nueva colección, por lo que los resultados pueden ser tan grandes como sea necesario.

Además, el paralelismo está llegando, así que es bueno tener un poco de práctica :)

+0

¿Qué versión recibirá el paralelismo? – nilskp

+0

cualquier actualización del motor JS para mongodb mapReduce? ¿Proporciona paralelismo ahora? –

4

M/R ya está paralelo en MongoDB si se está ejecutando un racimo fragmentada. Este es el punto principal de M/R de todos modos: para poner el cálculo en el mismo nodo que los datos.

+3

¿Estoy en lo cierto al suponer que la forma actual de aprovechar una computadora multi-core es ejecutando múltiples instancias de MongoDB en la misma máquina? –

1

súper rápido map/reduce está en la hoja de ruta

no va a estar en el (comunicado de verano) versión 1.6 de

tan tarde este año probablemente