%ex2.2

\begin{enumerate}[label=(\alph*)]
	\item\textbf{Suppose we do not use a combiner at the Map tasks. Do you expect there to be skew in
		the times taken by the various reducers to process their value lists? Why or why not?}\\
	
		Yes. Some words (e.g. ''I'', ''a'', ''are'',..) will occur very often, the
		reducers handling that key will take very long to process all values.
		Other reducers handling less frequently used words will be finished in
		less time by far.
		
	\item\textbf{If we combine the reducer functions into a small number of Reduce tasks, say 10 task,
		at random, do you expect the skew to be significant? What if we instead combined the
		reducers into 10.000 Reduce tasks?!}\\
	
		With less reducers the total time will go up, but the skew will be
		less, as the long lists are more likely to be moved to a reducer which
		had short lists before (as that one will be finished sooner)
		With 10000 reducers the skew will go up, as a few of those reducers
		will have to handle very long lists, while the others will finish early
		and idle. This is still assuming that we don't have a combiner.
		
	\item\textbf{Suppose we do use a combiner at the 100 Map tasks. Do you expect the skew to be
		significant? Why or why not?}\\
	
		It will be much less skew than if we don't use a combiner. A lot of
		words appear lots of times on a page, so pre-processing them with a
		combiner will reduce the number of values for the reducers
		significantly, and this also will reduce communication cost.
		
	\item\textbf{ Suppose we increase the number of Reduce tasks significantly, say to 1.000.000. Do you
		expect the communication cost to increase? What about the replication rate or reducer
		size? Justify your answers.}\\
	
		Communication cost will increase, as the reducer size can be set to
		lower values. This will also reduce the skew in the times taken by the
		reducers.
		Replication rate will stay the same, as this is determined by mapped
		values divided by inputs (which is about 2500 for an average web-page)
		Reducer size can go down, in order to reduce reducer runtime skew.
\end{enumerate}
