Как надежно, но минимально, распределять предметы по одноранговой системе
-
09-06-2019 - |
Вопрос
Если у кого-то есть одноранговая система, которая может быть запрошена, хотелось бы
- Уменьшите общее количество запросов по всей сети (широко распределяя «популярные» предметы и «аналогичные» предметы вместе)
- Избегайте избыточного хранилища в каждом узле
- Уверяйте хорошую доступность даже умеренно редкими элементами в условиях простоя клиента, сбоя оборудования и ухода пользователей (возможно, обнаружение редких предметов для архивистов/историков)
- Избегайте запросов, которые не могут найти совпадения в случае сетевых разделов
Учитывая эти требования:
- Есть ли стандартные подходы? Если нет, то есть ли уважаемые, но экспериментальные исследования? Я знаком с схемами распространения, но я не видел ничего, что действительно касается обучения для надежности.
- Мне не хватает очевидных критериев?
- Кто -нибудь заинтересован в работе/решении этой проблемы? (Если это так, я рад, что я с открытым исходным кодом в очень хромой симуляторе, который я собрал вместе в эти выходные и, как правило, даю бесполезные советы).
@CDV: Теперь я смотрел видео, и это очень хорошо, и хотя я не чувствую, что оно достигает стратегии подключения к распространению, это определенно 90% пути там. Вопросы, однако, подчеркивают полезные различия в этом подходе, которые решают некоторые из моих дальнейших проблем, и дают мне некоторые ссылки на последующее наблюдение. Таким образом, я временно принимаю ваш ответ, хотя я считаю вопрос открытым.
Решение
Если у вас есть время, стоит проверить Технологический разговор Google, который дал Вуала. Полем Они обсуждают те же проблемы, с которыми они столкнулись при создании своей одноранговой файловой системы.
Другие советы
Существует несколько систем с различными аспектами того, что вы ищете, и каждая из них делает разные компромиссы, включая, помимо прочего:
Динамо Amazon: http://s3.amazonaws.com/allthingsdistributed/sosp/amazon-dynamo-sosp2007.pdf
Кай: http://www.slideshare.net/takemaru/kai-an-open-source-implementation-of-amazons-dynamo-472179
Hadoop: http://hadoop.apache.org/core/docs/current/hdfs_design.html
Аккорд: http://pdos.csail.mit.edu/chord/
Улей: http://www.cs.cornell.edu/people/egs/beehive/
и многие другие. После создания пользовательской системы вдоль этого направления я также выпустил некоторые строительные блоки в форме с открытым исходным кодом: http://code.google.com/p/distributerl/(Это не целая система, а несколько библиотек, полезных для его построения)