Как надежно, но минимально, распределять элементы по одноранговой системе - PullRequest
5 голосов
/ 01 сентября 2008

Если у кого-то есть одноранговая система, к которой можно обратиться, он хотел бы

  • сократить общее количество запросов по сети (путем широкого распространения «популярных» и «похожих» элементов вместе)
  • избегать избыточного хранилища на каждом узле
  • обеспечивает хорошую доступность даже для редко встречающихся предметов в условиях простоя клиента, аппаратного сбоя и ухода пользователей (возможно, обнаружение редких предметов для архивистов / историков)
  • избегать запросов, которые не могут найти совпадения в случае сетевых разделов

Учитывая эти требования:

  1. Существуют ли стандартные подходы? Если нет, то есть ли какое-нибудь уважаемое, но экспериментальное исследование? Я знаком с некоторыми схемами распределения, но я не видел ничего, что действительно касалось бы обучения для надежности.
  2. Я пропускаю какие-либо очевидные критерии?
  3. Кто-нибудь заинтересован в работе над / решением этой проблемы? (Если это так, я счастлив открыть часть исходного кода для очень слабого симулятора, который я собрал на этих выходных, и обычно даю бесполезные советы).

@ cdv: Я сейчас посмотрел видео, и оно очень хорошее, и, хотя я не чувствую, что оно вполне подходит для стратегии сменного распространения, оно определенно проходит на 90%. Вопросы, однако, подчеркивают полезные различия с этим подходом, которые учитывают некоторые из моих дальнейших проблем, и дают мне некоторые ссылки для продолжения. Таким образом, я временно принимаю ваш ответ, хотя считаю вопрос открытым.

Ответы [ 2 ]

2 голосов
/ 26 сентября 2008

Существует несколько систем с различными аспектами того, что вы ищете, и каждая из них делает разные компромиссы, включая, но не ограничиваясь:

Динамо Амазонки: 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/ (это не целая система, а несколько библиотек, полезных при ее создании)

2 голосов
/ 01 сентября 2008

Если у вас есть время, стоит проверить технический доклад Google, который Вуала дал . Они обсуждают те же проблемы, с которыми они сталкивались при построении одноранговой файловой системы.

...