MapReduce phân kỳ từ hầu hết các hệ thống phân chia và chinh phục theo một cách khá cơ bản, nhưng một điều đơn giản đến mức nhiều người gần như bỏ lỡ nó. Thiên tài thực sự của nó là trong việc gắn thẻ các kết quả trung gian.
Trong một hệ thống phân chia và chinh phục điển hình (trước đó), bạn phân chia công việc theo kiểu thanh toán, thực hiện các gói công việc song song và sau đó hợp nhất các kết quả từ công việc đó lại một cách an toàn.
Trong MapReduce, bạn phân chia công việc theo kiểu thanh toán, thực hiện các gói công việc song song và gắn thẻ kết quả để cho biết kết quả nào đi với kết quả nào khác. Việc hợp nhất sau đó là nối tiếp cho tất cả các kết quả với cùng một thẻ, nhưng có thể được thực hiện song song cho các kết quả có các thẻ khác nhau.
Trong hầu hết các hệ thống trước đó, bước hợp nhất trở thành nút cổ chai cho tất cả các nhiệm vụ thực sự tầm thường nhất. Với MapReduce nó có thể vẫn được nếu bản chất của nhiệm vụ yêu cầu tất cả sáp nhập được thực hiện nối tiếp. Tuy nhiên, nếu tác vụ cho phép một số mức độ kết hợp song song các kết quả, thì MapReduce đưa ra một cách đơn giản để tận dụng khả năng đó. Hầu hết các hệ thống khác thực hiện một trong hai điều sau: hoặc thực hiện tất cả các phép hợp nhất chỉ vì nó có thể cần thiết cho một số tác vụ hoặc nếu không thì xác định tĩnh việc hợp nhất song song cho một tác vụ cụ thể. MapReduce cung cấp cho bạn đủ dữ liệu ở bước hợp nhất để tự động lên lịch song song nhiều nhất có thể, trong khi vẫn đảm bảo (giả sử bạn không mắc lỗi trong bước ánh xạ) rằng sự duy trì được duy trì.
Cũng lưu ý rằng trong MapReduce, nó ngầm hiểu rằng tất cả các bước có thể được đệ quy, vì vậy tôi có thể có một bước ánh xạ ban đầu phá vỡ một nhiệm vụ lớn thành 5 nhiệm vụ nhỏ hơn có thể được thực hiện song song - nhưng mỗi bước có thể bật) được ánh xạ ra một số nhiệm vụ song song nhỏ hơn, v.v.
Điều này dẫn đến một cấu trúc cây trên cả hai mặt ánh xạ và các mặt khử để nhanh chóng phá vỡ một nhiệm vụ lớn thành nhiều mảnh đủ để tận dụng nhiều máy móc.