Алгоритм Bittorent Rarest First - как выбираются фрагменты? - PullRequest
1 голос
/ 21 сентября 2019

Я читал о самом редком первом алгоритме:

Для эффективности PWP использует простую стратегию под названием rarest first, в которой, учитывая текущий список пропущенных элементов, клиент запрашивает самый редкий.первый (то есть кусок , который имеет наименьшее количество, но не равное нулю, соседних пиров).Как правило, есть много предметов, которые одинаково редки.В этом случае также важно случайным образом выбрать один из них для загрузки.Таким образом, доступность частей распределяется, и, таким образом, даже когда все сеялки попадают на небеса, больше шансов, что ни одна часть не исчезнет.

Мой вопрос: что происходит, когда две частиесть такая же редкость? Выбираем ли мы кусок, из которого было загружено меньше блоков, или выбираем один случайным образом?В тексте говорится, что мы выбираем один случайным образом, но я не уверен, что это лучше, чем прежняя стратегия.

1 Ответ

2 голосов
/ 23 сентября 2019

Самый редкий первый алгоритм выбирает, какие части начать .Поэтому, когда у вас есть достаточно незавершенных частей в процессе, вам обычно не нужно снова запускать алгоритм (за исключением случая, когда одноранговому узлу нечего предложить для частей в процессе).

Так что, если уже естьчасть в процессе (редкая или нет), тогда вы обычно хотите завершить эту часть в первую очередь, и вопрос не возникает.Если по какой-либо причине вам нужно начать новую пьесу, то случайная выборка является хорошей стратегией по умолчанию.

Есть несколько более экзотических стратегий, таких как выбор более грубого размера, чтобы создать более удобный для ввода-вывода жесткий дискшаблонов в сценариях с высокой пропускной способностью, но это крайний случай.

Более важное отклонение от самого редкого возникает при реализации Быстрое расширение , где вы можете выбрать части изразрешенные быстрые наборы или предлагаемые пьесы в дополнение или вместо редчайших.

...