Figure 4.6 shows the general schema of the MapReduce functions. Input
and output are often lists of key-value pairs themselves, so that several
MapReduce jobs can run in sequence. In fact, this was the design of the
Google indexing system in 2004. What we describe in this section corresponds
to only one of five to ten MapReduce operations in that indexing
system. Another MapReduce operation transforms the term-partitioned index
we just created into a document-partitioned one.