Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
75% weniger Download beim Update von Paketen
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

Goto page 1, 2, 3, 4  Next  
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation
View previous topic :: View next topic  
Author Message
Wiebel
n00b
n00b


Joined: 05 Feb 2003
Posts: 59
Location: Bremen, Germany

PostPosted: Sat Aug 28, 2004 4:19 am    Post subject: 75% weniger Download beim Update von Paketen Reply with quote

Blackpenguins dynamic deltup server ist in der Betaphase angekommen

Das hier geht an alle, die unter der hohen Downloadlast, die Gentoo erzeugt, zu leiden haben. Also vor allem Nutzer von Modem, ISDN oder Volumentarifen oder Leute denen aus anderenGründen der Download zu viel ist, werden Gefallen an deltup finden.

Einige von euch werden sich an deltup erinnern können, ein tolles Programm zur Senkung des Downloadvolumen. Das Prinzip, das hinter deltup steckt, basiert darauf, dass nur die Unterschiede zu den bereits vorhandenen Dateien übertragen werden. (Dank an John Whitney, der für deltup selbst verantwortlich ist und Dank an Joshua P. MacDonald den Autor des zugrundeliegenden xdelta)

Leider wurde deltup vor einigen Wochen aus dem Portage-tree entfernt da nur eine bescheidenen Anzahl von delta-Dateien verfügbar war und mittlerweile auch keine davon mehr aktuell ist.

Nun kommen wir zu dem Punkt an dem blackpenguins schlicht genial zu nennender "dynamic deltup server", und das getdelta.sh-downloadwrapper-script ansetzt und diesen Zustand grundlegend ändert.

Wie der Name ja schon vermuten lässt hält der Server nicht nur fertige und natürlich aktuelle delta-Dateien (*.dtu) bereit sondern, und das ist das geniale daran, er erzeugt diese dtu-dateien dynamisch bei Bedarf, sollten sie nicht im Cache liegen.

Wenn ihr wissen wollt wieviel das im Einzelnen bringt, könnt ihr euch die Statistiken ansehen auf:
:arrow: http://linux01.gwdg.de/~nlissne/

Was Ihr tun müsst um auch soviel Downloadvolumen sparen zu können:



  1. Ladet euch das deltup Ebuild von blackpenguins Seite runter und legt es unter $PORTDIR_OVERLAY/app-portage/deltup/
    Code:
    . /etc/make.conf
    mkdir $PORTDIR_OVERLAY/app-portage/deltup/
    cd $PORTDIR_OVERLAY/app-portage/deltup/
    wget http://linux01.gwdg.de/~nlissne/deltup-0.4.0.ebuild
    ebuild deltup-0.4.0.ebuild digest
    emerge deltup

  2. Dann ladet ihr das getdelta.sh Script herunter und legt es nach /usr/local/bin
    (Anstelle der letzten Zeile könnt ihr natürlich auch die entsprechende Zeile in der make.conf editieren)
    Code:
    cd /usr/local/bin
    wget http://linux01.gwdg.de/~nlissne/getdelta.sh
    chmod +x getdelta.sh
    echo 'FETCHCOMMAND="/usr/local/bin/getdelta.sh \${URI}"' >> /etc/make.conf

  3. Dann müsst ihr noch dafür sorgen das in der make.conf die Variable GENTOO_MIRRORS="" gesetzt ist.
    Code:
    echo 'GENTOO_MIRRORS=""' >> /etc/make.conf

  4. Ach ja das war's :wink: emerge -uD world oder was immer ihr wollt.

Und wie macht der das???

Wann immer ihr ein Paket updatet untersucht das getdelta.sh Skript euer $DISTDIR Verzeichnis, wenn es eine alte Version des Quell-Archives gefunden hat fordert es eine entsprechende dtu-Datei bei dem deltup Server an.

Der Server schickt entweder die dtu-Datei direkt oder er setzt einen Auftrag in seine Warteschlange und erzeugt dann die dtu-Datei für euch und natürlich andere die nach euch kommen, und dann die Datei direkt aus dem Cache beziehen können.

Sowie getdelta.sh die dtu-datei erhalten hat erstellt es Automatisch die neue Version des Archives. Wenn irgendetwas schiefgehen sollte fällt getdelta.sh auf einen normalen Download zurück. Dadurch verhält sich getdelta.sh portage gegenüber völlig transparent und muss in keiner Weise von euch bedient werden oder Ähnliches.

Das Verhalten von getdelta.sh kann sehr fein configuriert werden. Dazu könnt ihr entweder in dem sehr gut dokumentierten script selbst etliche Variablen ändern, oder ihr tragt, die von den Voreinstellungen abweichenden WErte direkt in die make.conf ein um beim nächsten update das script nicht wieder editieren zu müssen. Ihr könnt einstellen ob es bunt sein soll oder nicht, wie auskunftsfreudig es sein soll, wann ein timeout erfolgen soll und vieles andere mehr.
Also schaut bitte in das Script rein und passt die Variablen euren Wünschen an.
Variablen die in make.conf gesetzt werden haben eine höhere Priorität.

Hoffentlich können recht viele von euch damit was anfangen.

blackpenguin könnt ihr (fast immer *fg*) auf freenode im IRC finden er freut sich schon auf eure Fragen und Rückmeldungen.

Auf freenode wollen wir auf #dynamic-deltup-server uns speziell diesem Thema widmen, wir freuen uns auf euren Besuch.

Wenn jemand Interesse daran hat auch einen dynamic-deltup-Server aufzusetzten möge er sich auch bei blackpenguin melden (als solcher natürlich auch hier im Forum)

Das ist eine Übersetzung von blackpenguins Original-Posting:
http://forums.gentoo.org/viewtopic.php?t=215262
_________________
Nobody will ever need more than 640 kB RAM. -- Bill Gates


Last edited by Wiebel on Tue Aug 31, 2004 12:53 pm; edited 8 times in total
Back to top
View user's profile Send private message
alex0801
n00b
n00b


Joined: 19 Jul 2004
Posts: 44

PostPosted: Sat Aug 28, 2004 6:54 am    Post subject: Reply with quote

höre heute zum ersten mal davon und finds genial.

Jetzt muss nur noch mein Modem im Schleppi unter gentoo funktionieren...

- Alex
Back to top
View user's profile Send private message
ts77
Apprentice
Apprentice


Joined: 23 Mar 2003
Posts: 200
Location: Berlin, Germany

PostPosted: Sat Aug 28, 2004 8:10 am    Post subject: Reply with quote

Wow, auch mit DSL und Volumentarif lohnt sich das:

perl-5.8.4.tar.gz-perl-5.8.5.tar.gz.dtu
Size: 202.5 kB
Orig-Size: 11.4 MB
Efficiency: 98.26%
Saved: 11.2 MB

Hab dem Cache gerade ein paar mehr Einträge beschert ;-).
Back to top
View user's profile Send private message
zielscheibe
l33t
l33t


Joined: 02 Apr 2004
Posts: 804
Location: Aachen

PostPosted: Sat Aug 28, 2004 10:41 am    Post subject: Reply with quote

Fantastico! :lol:

Schont die Uploads der Mirrors und mein Volumentarif.

cu
Back to top
View user's profile Send private message
SirPreme
n00b
n00b


Joined: 19 Aug 2004
Posts: 25

PostPosted: Sat Aug 28, 2004 12:27 pm    Post subject: Reply with quote

Als ich mit Gentoo anfing waren ja meine ganz ersten Hoffnungen, dass Portage sowas schon enthält... sie wurden nie erfüllt.. :wink:

Das Programm hier sieht wiederum sehr gut aus. Aber wie fehlerfrei läuft es? Kann es passieren, dass unangenehme Fehler auftreten, oder wichtige Teile nicht aktualisiert werden?
Als Nutzer eines Traffictarifs bin ich an diesem Programm natürlich sehr interessiert - aber ich bin auch kein Freund von Experimenten ("never touch a running system")...
Back to top
View user's profile Send private message
_hephaistos_
Advocate
Advocate


Joined: 07 Apr 2004
Posts: 2694
Location: salzburg, austria

PostPosted: Sat Aug 28, 2004 12:38 pm    Post subject: Reply with quote

wenn mit der downgeloadeten file was nicht stimmt, verwendet portage diese eh nicht -->> md5sum...

ciao
Back to top
View user's profile Send private message
Sas
Veteran
Veteran


Joined: 05 Jul 2003
Posts: 1229
Location: Germany

PostPosted: Sat Aug 28, 2004 12:44 pm    Post subject: Reply with quote

Wow, das klingt in der Tat sehr gut. Dieses "cheap copy" genannte Prinzip hat sich ja auch schon bei Versionsverwaltungssystemen bewährt. Vielen Dank für das HowTo, ich denke, wenn ich Zeit habe, werde ichs auch mal einrichten. (Aber für heute steht erstmal QTC# auf dem Programm ;))

Wie siehts denn mit der Last auf dem Server und der Aktualität von testing-Paketen aus?
_________________
42
Back to top
View user's profile Send private message
Wiebel
n00b
n00b


Joined: 05 Feb 2003
Posts: 59
Location: Bremen, Germany

PostPosted: Sat Aug 28, 2004 1:43 pm    Post subject: Reply with quote

@SirPreme:
Bisher läuft es völlig fehlerfrei, und wie hephaistos6 schon richtig angemerkt hat, wird die datei bei falschem md5 sowieso nicht verwendet. Wenn du die entsprechende Datei dann aus distfiles/ löschst nötigst du deltup ohnehin das paket "normal" runterzuladen und bist somit wieder bei dem gewohnten verhalten, da aber xdelta, gerade was die md5sum angeht sehr gut funktioniert, wist du eher das Problem haben das die md5 in Portage selbst falsch ist. :wink:

@Sas:
Naja die aktualität ist ja durch das dynamische konzept, genau so gut wie die des Internets selbst. Was die Serverlast angeht hält sich das durchaus in vertretbaren Grenzen, auch wenn der xdelta-prozess selbst sicher das eine oder andere mal etwas länger dauert, aber dazu kann dir blackpenguin selbst sicher mehr erzählen.
Back to top
View user's profile Send private message
Sas
Veteran
Veteran


Joined: 05 Jul 2003
Posts: 1229
Location: Germany

PostPosted: Sat Aug 28, 2004 1:48 pm    Post subject: Reply with quote

Ist es denn nicht so, dass der Server auf jeden Fall die vollständigen Dateien vorhalten muss, damit er die Differenzen errechnen und versenden kann? So war das mit der Aktualität gemeint... also müsste er doch nebenher sämtliche Distfiles vorliegen haben - und da interessiert mich eben, ob auch der testing-Tree vorhanden ist ;)
Oder lädt er den Kram bei Bedarf von einem Gentoo-Mirror?
_________________
42
Back to top
View user's profile Send private message
Wiebel
n00b
n00b


Joined: 05 Feb 2003
Posts: 59
Location: Bremen, Germany

PostPosted: Sat Aug 28, 2004 1:55 pm    Post subject: Reply with quote

@Sas:
Oh nein, das war wohl nicht deutlich genug ;) der Server holt sich die benötigten Dateien aus dem Netz, wenn die natürlich lokal verfügbar sind werden diese dirkt genutzt, aber an sonsten ist es nicht erforderlich dass alle Dateien auf dem Server vorliegen.
Back to top
View user's profile Send private message
Sas
Veteran
Veteran


Joined: 05 Jul 2003
Posts: 1229
Location: Germany

PostPosted: Sat Aug 28, 2004 2:06 pm    Post subject: Reply with quote

Achso, er speichert also nur die Differenzen, ja? Fehlt ihm eine, wird sie mit Hilfe der kompletten Datei eines anderen Mirror erstellt und gespeichert. Und wenn man eine Datei komplett braucht, reicht der die Anfrage an einen normalen Mirror weiter?
_________________
42
Back to top
View user's profile Send private message
Wiebel
n00b
n00b


Joined: 05 Feb 2003
Posts: 59
Location: Bremen, Germany

PostPosted: Sat Aug 28, 2004 2:14 pm    Post subject: Reply with quote

Genau so macht er das. (Temporär muss er natürlich zum Erstellen der dtus die Dateien dahaben, aber gespeichert werden nur die dtus)
Back to top
View user's profile Send private message
Wiebel
n00b
n00b


Joined: 05 Feb 2003
Posts: 59
Location: Bremen, Germany

PostPosted: Sat Aug 28, 2004 2:34 pm    Post subject: Reply with quote

Und euer distfiles - Verzeichnis kann es auch gleich sauberhalten.

Ich persönlich schätze die Option REMOVE_OLD=true sehr. Diese Option bewirkt, dass das jeweils alte Archiv nach dem erstellen des neuen auch gleich gelöscht wird, und das Hält euer disfiles Verzeichniss hervorragend sauber, da im Idealfall nur die aktuell benötigten Archive da sind und nicht, wie sonst, alle möglichen Generationen ein und seselben Paketes.
Das dürfte vor allem diejenigen interessieren, die bisher mit allen möglichen und unmöglichen Scripten versucht haben ihr distfiles Verzeichnis halbwegs ordentlich zu halten.

Wollt ich nur noch gesagt haben. ;)


Last edited by Wiebel on Sat Aug 28, 2004 11:14 pm; edited 1 time in total
Back to top
View user's profile Send private message
Realmaker
l33t
l33t


Joined: 17 Sep 2003
Posts: 683
Location: Bremen, Germany

PostPosted: Sat Aug 28, 2004 2:44 pm    Post subject: Reply with quote

Und wenn ich eine Version überspringe, lädt er dann die Zwischenversionsdatei runter und dann die nächste Datei oder geht das System dann nicht mehr, so dass er den ganzen Quellcode runterlädt?
_________________
Athlon 2600+ Barton, Asus A7N8x-X, nForce2, Asus Geforce FX5700 256mb, TwinMos 512ddr-sdram cl 2.5

Wer andern eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Back to top
View user's profile Send private message
ts77
Apprentice
Apprentice


Joined: 23 Mar 2003
Posts: 200
Location: Berlin, Germany

PostPosted: Sat Aug 28, 2004 2:49 pm    Post subject: Reply with quote

er lädt einfach die differenzen von den dateien, die du vorliegen hast, bis zu der aktuellen datei, die portage gerade zu ziehen versucht.
auch wenn 10 verschiedene versionen dazwischen liegen, kann halt passieren, das dann alles neu ist ;-)
Back to top
View user's profile Send private message
Wiebel
n00b
n00b


Joined: 05 Feb 2003
Posts: 59
Location: Bremen, Germany

PostPosted: Sat Aug 28, 2004 2:51 pm    Post subject: Reply with quote

getdeltup fordert eine datei an die zb. so aussieht glibc-2.1.tar.gz-glibc-2.3.3.tar.gz.dtu an wobei es keine rolle spielt wieweit die Versionen auseinanderliegen, solange der deltup-Server irgendwie an die Ursprungsversionen rankommt, wird er dir die dtu auch bauen und bereitstellen. Das ganze ist sehr narrensicher und deckt nahezu jeden erdenklichen Fall ab.
Einzig bei Binärpaketen, bei denen es auch funktioniert, ist die effizienz nicht optimal.
Back to top
View user's profile Send private message
amne
Bodhisattva
Bodhisattva


Joined: 17 Nov 2002
Posts: 6377
Location: Graz / EU

PostPosted: Sat Aug 28, 2004 3:26 pm    Post subject: Re: [HOWTO] 75% weniger Download beim Update von Paketen Reply with quote

Wiebel wrote:
emerge -UD world oder was immer ihr wollt.[/list]

*Hüstel* nicht -U, das ist böse.

Ist wirklich ne tolle Sache geworden, vor allem das automatische Wegräumen der alten Distfiles ist ein netter Nebeneffekt.
_________________
Dinosaur week! (Ok, this thread is so last week)
Back to top
View user's profile Send private message
Wiebel
n00b
n00b


Joined: 05 Feb 2003
Posts: 59
Location: Bremen, Germany

PostPosted: Sat Aug 28, 2004 3:36 pm    Post subject: Reply with quote

*edit* Ok, danke amne. Ich hab das im Originalpost berichtigt, für's Protokoll ;)*edit*

Last edited by Wiebel on Sat Aug 28, 2004 3:51 pm; edited 1 time in total
Back to top
View user's profile Send private message
_hephaistos_
Advocate
Advocate


Joined: 07 Apr 2004
Posts: 2694
Location: salzburg, austria

PostPosted: Sat Aug 28, 2004 3:50 pm    Post subject: Reply with quote

@Wiebel: -U = Upgradeonly!!! bitte schau doch den link bei der signatur von amne an...

hth,
ciao
Back to top
View user's profile Send private message
Wiebel
n00b
n00b


Joined: 05 Feb 2003
Posts: 59
Location: Bremen, Germany

PostPosted: Sat Aug 28, 2004 3:56 pm    Post subject: Reply with quote

Sorry hephaistos6, jetzt hab ich mich zu lange an dir vorbei mit amne verständigt.
hepephaistos6 Eintrag macht Sinn wenn man ein paar meiner etlichen Editieraktionen an meinem vorigen Post wieder wegnimmt ;)
Back to top
View user's profile Send private message
_hephaistos_
Advocate
Advocate


Joined: 07 Apr 2004
Posts: 2694
Location: salzburg, austria

PostPosted: Sat Aug 28, 2004 4:04 pm    Post subject: Reply with quote

hey wiebel!
danke, dass du mich nicht als volldummy dastehen lässt :)

ciao
Back to top
View user's profile Send private message
Merlin-TC
l33t
l33t


Joined: 16 May 2003
Posts: 603
Location: Germany

PostPosted: Sat Aug 28, 2004 4:06 pm    Post subject: Reply with quote

Kann es sein das es unter GCC 3.4 nicht compiliert?

Code:

emerge deltup
Calculating dependencies ...done!
>>> emerge (1 of 1) app-portage/deltup-0.4.0 to /
>>> md5 src_uri ;-) deltup-0.4.0.tar.gz

 *
 * Please note that deltup will be removed from portage
 * in the near future.  Development on deltup has stopped, although
 * patches are being generated in the interim until another distfile
 * patching system is ready for testing.
 *
 * further info will be available at
 * http://www.gentoo.org/proj/en/glep/glep-0009.html
 *
>>> Unpacking source...
>>> Unpacking deltup-0.4.0.tar.gz to /var/tmp/portage/deltup-0.4.0/work
>>> Source unpacked.

>>> Install deltup-0.4.0 into /var/tmp/portage/deltup-0.4.0/image/ category app-portage
gcc deltup.cpp -march=athlon-xp -O2 -pipe -fomit-frame-pointer -ftracer -mmmx -msse -m3dnow -o deltup -lstdc++ -lz -lbz2 -lssl
In file included from deltup.cpp:25:
file.h: In member function `virtual int Injectable_IStream::read(void*, int)':
file.h:132: Fehler: ISO C++ forbids cast to non-reference type used as lvalue
file.h:142: Fehler: ISO C++ forbids cast to non-reference type used as lvalue
make: *** [deltup] Fehler 1

!!! ERROR: app-portage/deltup-0.4.0 failed.
!!! Function src_install, Line 35, Exitcode 2
!!! (no error message)


Waere fuer einen Tip sehr dankbar.
Back to top
View user's profile Send private message
ruth
Retired Dev
Retired Dev


Joined: 07 Sep 2003
Posts: 640
Location: M / AN / BY / GER

PostPosted: Sat Aug 28, 2004 4:20 pm    Post subject: Reply with quote

hi,
ja das sollte ein gcc 3.4 problem sein...
versuchs doch mal mit CFLAGS "$CFLAGS -fpermissive"
also mal -fpermissive dranhängen...
dann sollten das nur noch warnungen sein... ;)
gruss
rootshell
(das ist die quick'n dirty variante... ;)
also der compiler aufruf muss:
Code:

gcc deltup.cpp -fpermissive -march=athlon-xp -O2 -pipe -fomit-frame-pointer -ftracer -mmmx -msse -m3dnow -o deltup -lstdc++ -lz -lbz2 -lssl

sein...
_________________
"The compiler has tried twice to abort and cannot do so; therefore, compilation will now terminate."
-- IBM PL/I (F) error manual
Back to top
View user's profile Send private message
Wiebel
n00b
n00b


Joined: 05 Feb 2003
Posts: 59
Location: Bremen, Germany

PostPosted: Sat Aug 28, 2004 4:35 pm    Post subject: Reply with quote

Das Problem ist wohl im Original Thread auch schon aufgetaucht.
Siehe: http://forums.gentoo.org/viewtopic.php?p=1476939#1476939
Back to top
View user's profile Send private message
moe
Veteran
Veteran


Joined: 28 Mar 2003
Posts: 1289
Location: Potsdam / Germany

PostPosted: Sat Aug 28, 2004 4:42 pm    Post subject: Reply with quote

Hmm, hier wurde es unter gcc-3.3.4 problemlos kompiliert.. Versteh ich nicht.
Ob das vielleicht mit den jetzt neuen USE-Flags von gcc zusammenhängt? Da gibts seit 3.3.4 u.a. ein Flag objc (Build support for the Objective C code language), das ist standard aus, ich habs aber angemacht, da es wichtig klingt.. ;-)
Hast du (Merlin-TC) das aus?

Gruss Maurice
_________________
Signaturen sind doof.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation All times are GMT
Goto page 1, 2, 3, 4  Next
Page 1 of 4

 
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