S>Здесь до тебя взрослые дядьки решали данную задачу вручную, готовых решений не нашлось, по крайней мере для данной .Net платформы.
их попросили решать на чистом .net, разрешения юзать обертки вокруг jvm там не было.
но и тут видно что они не столь уж взрослые на этом поприще, я увидел 2 решения и оба однопоточные. но я полагаю и интервьювер хотел увидеть навыки работы с .net, а не мощный параллельный код работающий с unsafe регионами.
S>За счет чего? Понимаешь ли, что паттерн — для распределения данных НА МНОЖЕСТВО машин?
кто тебе такую глупость сказал ? map-reduce это про разбивку задачи на мелкие подзадачи в первую очередь. то что эти подзадачи еще и можно распараллелить хоть в рамках машины, хоть кластера — лишь следствие идеи.
получивший такую задачу джун должен рассказать, что тут map-reduce нужен именно, что бы влезть в рамки по памяти, параллельность просто бонус. очень упрощенно: маппер читает строку и пишет ту же строку в отдельные файлики, в файлик1 строки начинающииеся на А, файлик2 строки начинающиеся на Б — теперь у тебя не один 10г файлик, а десятки, влезающие в память. осталось лишь отсортировать их содержимое и в нужном порядке слепить в конечный результат. это очень упрощенно, но в этом суть и магия инструмента.