[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