.gitignore: игнорировать только один конкретный каталог и только один [дубликат]

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

Так поддерживается ведро, когда есть контакт узла для вставки, но ведро не

В каких условиях нужно разбить k-ведро и почему?

В качестве первого приближения : Разделите ведро всякий раз, когда новый узел не может быть вставлен и , ID-пространство ковша покрывает ваш идентификатор узла.

Это необходимо для обеспечения полной осведомленности о вашем районе, имея только смутное осознание частей удаленного ключа. То есть для локальности.

Чтобы покрыть случай несбалансированного дерева - что может произойти, если идентификаторы узлов не являются (псевдо) случайными или, по крайней мере, в листовых ведрах, из-за статистических фуксов, когда они присваиваются по случайный - подход должен быть ослаблен следующим образом:

Когда

  • пытается вставить новый контакт C в таблицу маршрутизации
  • ведро, к которому принадлежит C , полно
  • C ближе к вашему идентификатору узла, чем K th-ближайший узел в вашей таблице маршрутизации, где K - размер ковша

, затем разделите ведро.

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

30
задан CharlesB 26 February 2013 в 08:51
поделиться