Я смотрю на дизайн Донна Мартина для веб-сканера .
, в разделе «Избегание дубликатов» он описывает механизм, который, по его мнению, можно использовать, чтобы избежать циклов и бесконечных вычислений. oop при сканировании:
Для небольших списков мы можем использовать что-то вроде sort | уникальный
Имея 1 миллиард ссылок для сканирования, мы могли бы использовать MapReduce для вывода только записей с частотой 1
что это значит? предположим, что все мои сканеры поддерживают список links_to_crawl
в наборе redis и список crawled_links
в моем значении oop. Они постоянно удаляют новую ссылку из links_to_crawl
, а затем помещают исходящие ссылки из этого URL-адреса также в links_to_crawl
, верно? когда они проконсультируются у crawled_links
с такой работой в MapReduce? не нужно ли им проверять каждую ссылку, прежде чем вставить ее в links_to_crawl
? как это работа MR?