Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Reduzindo o tráfego de download em 75% ou mais
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Portuguese
View previous topic :: View next topic  
Author Message
Vanquirius
Retired Dev
Retired Dev


Joined: 14 Jun 2002
Posts: 1297
Location: Ethereal plains

PostPosted: Sun Nov 21, 2004 9:02 pm    Post subject: Reduzindo o tráfego de download em 75% ou mais Reply with quote

Este tópico é uma tradução deste tópico, postado no Documentation, Tips & Tricks.

21/11/2004

---

:D Divulgação: o dynamic deltup server está em versão beta pública :D

Principalmente usários de modem e ISDN ou usuários que pagam pelo volume de tráfego em suas conexões de Internet irão gostar.

Alguns de vocês devem lembrar-se do deltup, um software para reduzir o tamanho de downloads, através da transferência somente da diferença do arquivo novo para o arquivo antigo. (Obrigado a John Whitney, que nos trouxe o deltup, e a Joshua P. MacDonald que escreveu o xdelta, que serviu como base.)

Infelizmente o deltup foi removido da árvore do Portage algumas semanas atrás, uma vez o número de arquivos delta tem sido pequeno e nenhum deles estava atualizado.

Agora, a situação mudou. Fico feliz de apresentar a vocês o "dynamic deltup server", e o script de downloads getdelta.sh.

O dynamic-deltup-server contém vários arquivos delta atualizados (*.dtu) em seu cache e, a grande notícia, ele cria arquivos dtu novos sob demanda.

Curioso o quanto de tráfego você pode economizar com este método de atualização?
Olhe estas estatísticas:
:arrow: http://linux01.gwdg.de/~nlissne/

Aqui está como ele funciona:
Faça "emerge deltup" e instale um pequeno script escrito em bash como um wrapper de downloads em seu /etc/make.conf usando a variável FETCHCOMMAND.
Pronto. :)

Quando você fizer emerge de uma atualização para seus pacotes, o script examina seu DISTDIR se houver uma versão antiga do arquivo fonte e pede que o servidor de deltup providencie o arquivo dtu.

O servidor irá ou mandar o arquivo dtu pedido, ou irá colocá-lo em uma fila de espera e começará a criar o arquivo dtu para você (e outros que quiserem o mesmo arquivo que você).

Uma vez que o script de download obteve o arquivo dtu, ele automaticamente cria uma nova versão do arquivo. Se ele não conseguir obter o arquivo dtu por qualquer motivo, ele fará o download do arquivo inteiro como faria de maneira normal. Então, tudo acontece de maneira transparente para o Portage - não há necessidade de aprender novos comando e não há necessidade de intervenção adicional do usuário.

As funções do script de download podem ser configuradas através de algumas variáveis dentro do script - ou - para sua conveniência - você pode usar as mesmas variáveis em seu /etc/make.conf (prático se você atualizar o script depois e não quiser ajustar todas variáveis novamente). Você pode escolher a verbalidade do output, se o output deve ser colorido, quando dar timeout em um pedido de dtu, se você quer deletar a versão antiga do arquivo fonte após criar o arquivo novo e coisas deste tipo.
Então, por favor, olhe e edite o script e mude as variáveis para estar de acordo com suas necessidades antes de rodá-lo
Todas variáveis estão documentadas nele. Variáveis ajustadas em /etc/make.conf tem prioridade maior.

Espero que seja útil (de fato JÁ É útil para algumas pessoas)

Aproveitem!
blackpenguin (procurem-me no freenode para sugestões ou questões **ATUALIZAÇÃO**: Abri um canal chamado #dynamic-deltup-server para discussões e questões)

Se você está interessado em rodar outro servidor de dynamic-deltup-server (a idéia é uma rede de servidores de deltup que conhecem o cache dos outros) por favor contate-me.
_________________
Hello.
Back to top
View user's profile Send private message
Vanquirius
Retired Dev
Retired Dev


Joined: 14 Jun 2002
Posts: 1297
Location: Ethereal plains

PostPosted: Sun Nov 21, 2004 9:20 pm    Post subject: Reply with quote

Instruções:

Use o Portage overlay para guardar os arquivos necessários. Adapte conforme necessário, estou presumindo que em seu /etc/make.conf você tem a seguinte variável: PORTDIR_OVERLAY="/usr/portage/local/".

1. Primeiro, vamos habilitar o uso de pacotes instáveis para o deltup e o getdelta.

Code:
mkdir /etc/portage
echo "app-portage/deltup ~x86" >> /etc/portage/package.keywords
echo "app-portage/getdelta ~x86" >> /etc/portage/package.keywords


2. Segundo, iremos salvar a ebuild do deltup.

Code:
mkdir -p /usr/portage/local/app-portage/deltup/
cd /usr/portage/local/app-portage/deltup/
nano -w deltup-0.4.0.ebuild


3. Adicione o conteúdo da ebuild:

Code:
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /home/cvsroot/gentoo-x86/app-portage/deltup/deltup-0.4.0.ebuild,v 1.5 2004/02/21 10:56:55 ferringb Exp $

S=${WORKDIR}/${P}
DESCRIPTION="Patch system for Gentoo sources.  Retains MD5 codes"
HOMEPAGE="http://deltup.sourceforge.net"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"

SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~x86 ~ppc ~sparc"

DEPEND=">=dev-util/xdelta-1.1.3
        >=app-arch/bzip2-1.0.0"

pkg_setup() {
        echo
        einfo ""
        einfo "Please note that deltup will be removed from portage "
        einfo "in the near future.  Development on deltup has stopped, although "
        einfo "patches are being generated in the interim until another distfile "
        einfo "patching system is ready for testing."
        einfo ""
        einfo "further info will be available at "
        einfo "http://www.gentoo.org/proj/en/glep/glep-0009.html"
        einfo ""
        echo -ne "\a" ; sleep 0.1 &>/dev/null ; sleep 0,1 &>/dev/null
        echo -ne "\a" ; sleep 1
        echo -ne "\a" ; sleep 0.1 &>/dev/null ; sleep 0,1 &>/dev/null
        echo -ne "\a" ; sleep 1
        sleep 3
}
src_install () {
        make DESTDIR=${D} install || die
        dodoc README ChangeLog GENTOO
        doman deltup.1
}


Alternativamente, a ebuild pode ser baixada aqui.
4. Salve, baixe os arquivos necessários e faça o digest:

Code:
emerge -f app-portage/deltup
ebuild deltup-0.4.0.ebuild digest


5. Agora, fazendo o mesmo para o getdelta:

Code:
mkdir -p /usr/portage/local/app-portage/getdelta/
cd /usr/portage/local/app-portage/getdelta/
nano -w getdelta-0.6.4.ebuild


6. Conteúdo da ebuild:

Code:
# Copyright 2004 Nicolai Lissner <nlissne@linux01.gwdg.de>
# Distributed under the terms of the GNU General Public License v2
#
# revisioned and enhanced by Torsten Veller <torsten@veller.net>
inherit eutils

DESCRIPTION="dynamic deltup client"
RESTRICT="nomirror"
HOMEPAGE="http://linux01.gwdg.de/~nlissne/"
SRC_URI="http://linux01.gwdg.de/~nlissne/${P}.tar.bz2"
SLOT="0"
IUSE=""
LICENSE="GPL-2"
KEYWORDS="~x86 ~ppc ~sparc"

DEPEND="sys-apps/grep"
RDEPEND="app-portage/deltup"

src_install () {
   dobin ${WORKDIR}/getdelta.sh
}

pkg_postinst() {
   if egrep -q "^[[:space:]]*FETCHCOMMAND=\"(/usr/bin/|)getdelta.sh" /etc/make.conf
   then
      einfo "You already configured getdelta.sh as your FETCHCOMMAND - good."
   else
      ewarn "Put"
      ewarn "FETCHCOMMAND=\"/usr/bin/getdelta.sh \\\${URI}\""
      ewarn "into your /etc/make.conf to make it work."
      ebeep
   fi
}


Alternativamente, a ebuild pode ser baixada aqui.

7. Salve, baixe os arquivos necessários e faça o digest:

Code:
emerge -f app-portage/getdelta
ebuild getdelta-0.6.4.ebuild digest


8. Agora vamos instalar os pacotes necessários:

Code:
emerge app-portage/deltup app-portage/getdelta


9. Edite seu /etc/make.conf, adicionando/alterando a a seguinte variável:

Code:
FETCHCOMMAND="/usr/bin/getdelta.sh \${URI}"


10. Pronto! O Portage fará uso do servidor dinâmico de deltup, economizando tempo e banda!
_________________
Hello.


Last edited by Vanquirius on Mon Nov 22, 2004 8:35 pm; edited 1 time in total
Back to top
View user's profile Send private message
BlackFenix
n00b
n00b


Joined: 10 Nov 2004
Posts: 11

PostPosted: Sun Nov 21, 2004 11:38 pm    Post subject: Reply with quote

As suas instruções de instalação estã bem melhores que as originais... valew :wink:
Back to top
View user's profile Send private message
fernandotcl
Veteran
Veteran


Joined: 20 Nov 2003
Posts: 1396
Location: Sao Paulo, Brazil

PostPosted: Mon Nov 22, 2004 12:19 am    Post subject: Reply with quote

A idéia é maravilhosa, mas funciona bem?
_________________
RTFM!
Back to top
View user's profile Send private message
Vanquirius
Retired Dev
Retired Dev


Joined: 14 Jun 2002
Posts: 1297
Location: Ethereal plains

PostPosted: Mon Nov 22, 2004 1:23 am    Post subject: Reply with quote

Funciona bem, sim. Dá problemas com arquivos binários (dtu maior que arquivo original), tipo os drivers da nvidia. Fora isso, é uma mão na roda.
_________________
Hello.
Back to top
View user's profile Send private message
To
Veteran
Veteran


Joined: 12 Apr 2003
Posts: 1145
Location: Coimbra, Portugal

PostPosted: Mon Nov 22, 2004 9:05 am    Post subject: Reply with quote

Isso aqui em Portugal é bem perciso...


_________________

------------------------------------------------
Linux Gandalf 3.2.35-grsec
Gentoo Base System version 2.2
------------------------------------------------
Back to top
View user's profile Send private message
klap
n00b
n00b


Joined: 24 May 2004
Posts: 58

PostPosted: Mon Nov 22, 2004 12:25 pm    Post subject: Reply with quote

Gostei mesmo, agora que ano que vem vai cobrar 0,10 por mega baixado no speedy isso vai ser bem util.
Back to top
View user's profile Send private message
BlackFenix
n00b
n00b


Joined: 10 Nov 2004
Posts: 11

PostPosted: Mon Nov 22, 2004 2:48 pm    Post subject: Reply with quote

Acho que faltou um detalhe. Eu tive q fazer isso para poder emergir:

Code:

echo "app-portage/deltup ~x86" >> /etc/portage/package.keywords
echo "app-portage/getdelta ~x86" >> /etc/portage/package.keywords
Back to top
View user's profile Send private message
Vanquirius
Retired Dev
Retired Dev


Joined: 14 Jun 2002
Posts: 1297
Location: Ethereal plains

PostPosted: Mon Nov 22, 2004 8:36 pm    Post subject: Reply with quote

Obrigado BlackFenix, adicionei às instruções...
_________________
Hello.
Back to top
View user's profile Send private message
Kobal
Guru
Guru


Joined: 12 Feb 2004
Posts: 323
Location: Brasil / Brazil / Brésil / Brasilien / el Brasil

PostPosted: Wed Nov 24, 2004 3:07 am    Post subject: Reply with quote

Sera que isso e a solucao pra quem usa discada ?
Back to top
View user's profile Send private message
Vanquirius
Retired Dev
Retired Dev


Joined: 14 Jun 2002
Posts: 1297
Location: Ethereal plains

PostPosted: Wed Nov 24, 2004 5:35 pm    Post subject: Reply with quote

Não sei se é "a" solução, é "uma" solução.
_________________
Hello.
Back to top
View user's profile Send private message
Operador Nabla
Apprentice
Apprentice


Joined: 06 Feb 2004
Posts: 176
Location: Salesópolis - SP - Brasil

PostPosted: Fri Nov 26, 2004 10:36 am    Post subject: Reply with quote

Depois de brigar com o getdelta.sh para conseguir baixar o dtu para gerar o pacote do Firefox 1.0 a partir do 1.0PR.1 (provavelmente devido a uma falha no algoritmo de detecção de pacotes na minha ${DISTDIR}: tive de me virar para fazer o download da dtu e aplicar o patch manualmente), estou começando a escrever o meu próprio wrapper para desempenhar as funções do getdelta.sh. No momento, estou interessado em implementar as seguintes características:

- Detectar pacotes existentes na ${DISTDIR} a partir das informações contidas nos ebuilds, em vez de aplicar máscaras no nome do arquivo para detectar diferenças;

- Para isso, optei por escrever o script em Python, para poder empregar diretamente as funções do Portage;

- Dar alguma solução para que este script funcione também no modo resume (a idéia que eu tive é fazer com que ele invoque os antigos ${FETCHCOMMAND} e ${RESUMECOMMAND} para baixar o arquivo inteiro, caso ele falhe em pegar o dtu; atualmente, o getdelta.sh baixa pacotes inteiros com o seu próprio comando ${FETCH} e não funciona no modo resume).

- Ser compatível com os arquivos de configuração do getdelta.sh.

Se for do interesse de alguém, posso informar meus progressos (e/ou disponibilizar o script, depois de pronto) aqui no fórum. Sugestões também são bem-vindas.
Back to top
View user's profile Send private message
seventhguardian
Apprentice
Apprentice


Joined: 10 May 2004
Posts: 261
Location: Portugal

PostPosted: Wed Feb 02, 2005 12:50 pm    Post subject: Reply with quote

Boas!

Só uma questão: o sevidor do deltup é nacional ou internacional? (em portugal)

É que neste momento estou a usar servidores nacionais sempre que possivel. E como nunca chego sequer aos limites do trafego nacional, não tenho problemas com o método normal. Se o deltup usar trafego nacional, então as coisas melhoram. Se por outro lado usar internacional, não obrigado :P..
Back to top
View user's profile Send private message
nafre
Guru
Guru


Joined: 27 Dec 2003
Posts: 388

PostPosted: Thu Feb 03, 2005 4:11 pm    Post subject: Reply with quote

alguem poderia me deescrever como funciona este deltup :?:

grato pela ajuda
_________________
Nome- Felipe
Nick- Nafre
Idade- 25
Salvador - Bahia - Brasil
Back to top
View user's profile Send private message
fernandotcl
Veteran
Veteran


Joined: 20 Nov 2003
Posts: 1396
Location: Sao Paulo, Brazil

PostPosted: Thu Feb 03, 2005 4:27 pm    Post subject: Reply with quote

nafre wrote:
alguem poderia me deescrever como funciona este deltup :?:

vanquirius wrote:
deltup, um software para reduzir o tamanho de downloads, através da transferência somente da diferença do arquivo novo para o arquivo antigo.

Em outras palavras, isso cria patches para sources em um repositório remoto, e você baixa esses patches e aplica automaticamente aos sources já existentes, e depois recompila.

Interpretação de texto...
_________________
RTFM!
Back to top
View user's profile Send private message
nafre
Guru
Guru


Joined: 27 Dec 2003
Posts: 388

PostPosted: Thu Feb 03, 2005 10:10 pm    Post subject: Reply with quote

opa infezlimente tenho que dizer que
[quote=vaunuirius]
deltup, um software para reduzir o tamanho de downloads, através da transferência somente da diferença do arquivo novo para o arquivo antigo.
[/quote]

isto fico confuso. :) nao explica bem como funciona o deltup. Mais pode deixar que ja entendi como he que funciona :)
_________________
Nome- Felipe
Nick- Nafre
Idade- 25
Salvador - Bahia - Brasil
Back to top
View user's profile Send private message
Matheus Villela
Apprentice
Apprentice


Joined: 25 Oct 2003
Posts: 263

PostPosted: Thu Feb 03, 2005 11:54 pm    Post subject: Reply with quote

Na verdade a descrição "patches pra sources" não é correta...

O "patch" que na verdade aqui é um DTU é semelhante IPS's(quem já se interessou por traduções de jogos de VG sabe do que se trata :P). Esse DTU ao ser aplicado vai criar _exatamente_ o mesmo arquivo... com mesmo md5sum, isso não ocorre se você descompactar o arquivo, aplicar patch e recompactar de novo ;)

Tanto é que DTU's do deltup funcionam também pra pacotes binários(Opera por exemplo) só que... a eficiência cai bastante, principalmente se o pacote tiver muito binário e pouca "data"(imagens e sons por exemplo), se for só binário provavelmente dá algo maior que 90% do arquivo pra baixar, provavelmente com algo perto dos 100% :P
Back to top
View user's profile Send private message
nafre
Guru
Guru


Joined: 27 Dec 2003
Posts: 388

PostPosted: Tue Feb 08, 2005 9:06 pm    Post subject: Reply with quote

acho que ja entendi como isto funciona.

Um servidor ira baixar e procesar uma arquivo e depois enviar para sua box
_________________
Nome- Felipe
Nick- Nafre
Idade- 25
Salvador - Bahia - Brasil
Back to top
View user's profile Send private message
alexandre_parente
n00b
n00b


Joined: 29 Jun 2003
Posts: 37

PostPosted: Sun Feb 13, 2005 8:23 am    Post subject: Reply with quote

Qual a diferença entre deltup e xdelta?
O deltup é melhor ?quanto e porque?

O gentoo tem o xdelta em sua arvore e agora possui uma USE kdexdeltas , então acho que é totalmente viável uma USE xdelta ou deltup.
Back to top
View user's profile Send private message
fernandotcl
Veteran
Veteran


Joined: 20 Nov 2003
Posts: 1396
Location: Sao Paulo, Brazil

PostPosted: Mon Feb 14, 2005 4:46 pm    Post subject: Reply with quote

alexandre_parente wrote:
Qual a diferença entre deltup e xdelta?

Pelo que eu entendi, o xdelta é o backend do deltup.

alexandre_parente wrote:
O gentoo tem o xdelta em sua arvore e agora possui uma USE kdexdeltas , então acho que é totalmente viável uma USE xdelta ou deltup.

Eh?
_________________
RTFM!
Back to top
View user's profile Send private message
Operador Nabla
Apprentice
Apprentice


Joined: 06 Feb 2004
Posts: 176
Location: Salesópolis - SP - Brasil

PostPosted: Sun Feb 20, 2005 5:42 pm    Post subject: Reply with quote

Estou com a impressão de que o Dynamic Deltup Server está começando a ficar saturado (principalmente depois que um servidor FTP deixou de ser utilizado para baixar os dtus).

Antigamente, quase sempre eu encontrava os dtus de meu interesse prontos para download nos servidores e, nas raras ocasiões em que este não constava, o servidor atendia o meu pedido para gerar um dtu na hora.

Agora, grande parte dos dtus que eu quero não estão disponíveis para download e, para pedir que o servidor gere-os para mim, tenho que amargar na fila...
Back to top
View user's profile Send private message
Operador Nabla
Apprentice
Apprentice


Joined: 06 Feb 2004
Posts: 176
Location: Salesópolis - SP - Brasil

PostPosted: Sun Feb 20, 2005 5:51 pm    Post subject: Reply with quote

No caso dos xdeltas do KDE, a coisa é um pouco trabalhosa. Você tem de:
  • 1. Descompactar o arquivo <antigo>.tar.bz2, gerando o arquivo <antigo>.tar
  • 2. Aplicar o patch xdelta no arquivo <antigo>.tar, gerando o arquivo <novo>.tar
  • 3. Compactar o arquivo <novo>.tar, gerando finalmente o arquivo <novo>.tar.bz2, pronto para ser instalado pelo Portage.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portuguese All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum