[GTER] Cache de BitTorrent
Fabrício Cabral
fabriciofx at gmail.com
Sat Jun 27 09:20:15 -03 2009
2009/6/26 Provedor Bogus <provedorbogus at gmail.com>:
> Fabrício,
>
> Estou comentando in-line, ok ?
Ok. Também vou comentar in-line, ok? :)
> O cache é 100% transparente e foi desenvolvido usando TPROXY. Assim, a
> resposta para as requisições
> são feitas usando os endereços IP dos peers que por ventura forem
> fornecedores da parte do arquivo solicitada
> e somente ela.
Certo. Imaginei que você estivesse usando o TPROXY mesmo. ;)
Isso resolve o problema da reputação & cia.
> O nosso cache não funciona como o Oversi que analisa o payload das
> requisições para os
> trackers e baixa junto com o peer da sua rede o mesmo conteúdo para então
> participar como sendo um seeder.
> Acho que essa forma seria juridicamente problemática.
Totalmente. Seu cache *não* pode atuar como seeder em hipótese alguma!
> O tráfego é reconhecido através de análise de payload, mas, desenvolvemos um
> algoritmo que otimiza bem
> essa tarefa porque fica em kernel-mode.
Como você resolveu o problema de detectar tráfego bittorrent criptografado?
> A máquina supra-citada consegue
> processar 400 mbps com 30% de carga.
> Não fizemos muitos testes de estresse porque consideramos essa performance
> muito razoável.
> Nosso plano não é ter somente uma máquina para toda a rede e sim dividir a
> carga entre duas ou três máquinas.
400 Mbps? De quanto é seu link internet? ;)
> Há a opção de se colocar uma máquina para toda a rede e outra em hot
> stand-by com Keepalived rodando
> para se ter redundância.
>
> A parte de disco fica por conta da máquina de conteúdo que tem capacidade de
> processamento e
> subsistema de disco apropriados para essa tarefa.
Ok.
> O cache de P2P difere em muito de um cache de Youtube, por exemplo.
> No Youtube, muitas pessoas acessam vídeos de, em média, 8 mega. Um arquivo
> pequeno.
> No P2P, poucas pessoas baixam arquivos grandes, na nossa média, 1,5 giga.
> Assim, o tempo para que o cache seja populado com apenas 3 arquivos é muito
> maior.
>
> 1 arquivo de 1,5 giga dá pra guardar ~ 183 arquivos do Youtube.
>
> Qual das duas situações tem mais chance de ter um hit ? :-)
Depende. Você está esperando receber o arquivo *todo* do bittorrent pra só
então poder servi-lo através do seu cache? Dado que você já tem um segmento
(pedaço) do arquivo em seu cache e este segmento é solicitado, você já poderia
servi-lo. Isto com certeza aumentaria o seu hit rate.
> A diversidade de conteúdo também é um problema, pois, dependem de buscas
> individuais
> dos clientes, diferente do Youtube em que vídeos são acessados por sites de
> blogs conhecidos
> (como o Kibeloco e o Buteco da Net) ou mesmo enviados como referência em
> e-mails.
> Eu nunca recebi um .torrent de alguém sugerindo que eu baixasse para dar uma
> olhada. :-)
Não entendi este ponto. Na minha opinião, *todo* o conteúdo da sua rede depende
dos seus usuários. Eles que é que vão determinar o seu tráfego. Você pode ter
um tráfego pequeno de P2P em uma empresa por exemplo, mas grande de e-mail.
No entando, o contrário seria o mais provável em usuários domésticos.
> Temos cerca de 300 mbps só de tráfego Torrent e isso é insuficiente para
> gerar um bom hit ratio.
Ainda acho que a questão do hit rate é de acordo com o conteúdo a ser baixado.
Baixo hit rate, só se seus usuários estão baixando conteúdo muito diferente um
dos outros, o que é meio improvável. O hit rate do tráfego web gira em torno de
30% e só não é maior (acredito eu), porque as páginas mais visitadas (como as
de notícias) tem um keep-alive baixo e portanto, são descartadas logo do cache.
> Estamos com 5 TB ocupados e ainda estudando a política de replacement, mas,
> temos muito
> tempo para definí-la já que nem tão cedo os 45 TB da máquina serão ocupados.
> :-)
Espaço não é problema *hoje*, mas um dia ele vai ser. ;) Além do mais, se você
conseguir otimizar isso, o custo do seu equipamento vai cair. Já vi
papers na Internet
que demonstraram (pelo menos na época) que o cache P2P tende a se estabilizar
quando chega em 500GB. Assim, um disco de 1TB seria mais que suficiente.
> Provavelmente ela será baseada em uma busca do INFOHASH nos sites mininova,
> isohunt e
> torrentz para definir a popularidade do Torrent e também a quantidade de
> vezes que ele foi baixado
> pelos nossos usuários. Através disso geraremos um rank que será usado para
> eliminar
> os arquivos de menor popularidade.
Tecnicamente parece ser uma boa idéia, mas eu não a utilizaria. Por
dois motivos:
1. Você fica dependente destes sites. Se eles sairem do ar ou mudarem a página,
como você vai pegar estas informações?
2. Isto pode implicar em problemas jurídicos, tendo em vista que seu cache é
"espertinho" demais.
Veja que a linha que separa o que é legal do que é ilegal é muito tênue. Você
não pode nem fazer prefetching do conteúdo, pois isto implicaria em "facilitar"
para o usuário. Cache P2P só é pra repassar um conteúdo (leia-se bytes mesmo)
que já foram encontrados e solicitados pelo usuário.
[]'s
--fx
More information about the gter
mailing list