Making Gnutella-like P2P Systems Scalable

segunda-feira, 15 de outubro de 2007
Postado por Carlos Souza

Abstract
Napster pioneered the idea of peer-to-peer file sharing, and supported it with a centralized file search facility. Subsequent P2P systems like Gnutella adopted decentralized search algorithms. However, Gnutella’s notoriously poor scaling led some to propose distributed hash table solutions to the wide-area file search problem. Contrary to that trend, we advocate retaining Gnutella’s simplicity while proposing new mechanisms that greatly improve its scalability. Building upon prior research [1, 12, 22], we propose several modifications to Gnutella’s design that dynamically adapt the overlay topology and the search algorithms in order to accommodate the natural heterogeneity present in most peer-to-peer systems. We test our design through simulations and the results show three to five orders of magnitude improvement in total system capacity. We also report on a prototype implementation and its deployment on a testbed.
Mostra alguns problemas de escalabilidade do Gnutella e propões as seguintes soluções:
  • Adaptação da topologia: Ensures that high-capacity nodes are the high degree nodes
  • Controle de fluxo: Forward queries if can't answer them
  • Cria ponteiros para o conteúdo nos vizinhos
  • Biased walk: Não realiza flooding, encaminha para alguns poucos nós. Em geral encaminha para os nós mais conectados. Como o conteúdo é replicado nos vizinhos, nós muito conectados conhecem muito da rede.
Ele ainda argumenta porquê utilizar Gnutella ao invés de DHTs, uma vez que DHTs não sofrem tanto com escalabilidade:
  • P2P clients are extremely transient
  • Keyword searches are more prevalent, and more important, than exact-match queries.
  • Most queries are for hay, not needles.

Nenhum comentário: