Bruno Pedro
MapReduce related patterns
Here’s a list of possible MapReduce related patterns I’ve been thinking about:
- map-update: update each mapped document and emit its updated or original version;
- map-delete: delete each mapped document;
- map-reduce-map: map results of a map-reduce;
- map-map: map results of a map;
- map-recurse: apply recursion to the mapping function until a stop condition occurs;
- any combination of patterns, e.g., map-reduce-map-update.
Example usage:
- get the e-mail address of every customer with a negative balance: map-reduce-map. First, map-reduce to get the aggregate balance for each customer, then map again to get only customers with negative value and emit their e-mail address;
- delete all documents older than one month: map-delete. First, map to get all documents older than one month and then delete each one;
- get a list of documents and mark them as read: map-update. First, map to get the list of documents according to a given criteria, then update each document marking it as read;
- and so on…