[Talk-de] OT: Rsync (Re: Deutschland-Karte über rsync)

Florian Lohoff flo at rfc822.org
So Aug 31 07:53:24 UTC 2008


On Sun, Aug 31, 2008 at 09:45:15AM +0200, Sven Anders wrote:
> > Inwiefern wuerde rsync hier helfen? Es kann doch keine Teile
> > komprimierter Daten uebertragen?
> 
> Kann das Rsync nicht? Ist mir nicht so ganz klar. Nehmen wir an, wir haben ein 
> Textdatei von 100 MB / gepackt 10 MB und ich füge in der Mitte (ca. bei 50 
> MB) etwas ein, dann kann es doch sein, das der erste Teil (ca. 5MB) sich gar 
> nicht unterscheidet (ich meine das die Zipper auch in Blöcken speichern), 
> dann kommt eine Änderung und dann die restlichen 5 MB. Natürlich wird im 
> Zweifel durch die Komprimierung mehr wieder neu synchronisiert werden, aber 
> das es gar nichts bringt, würde mich wundern.

Das problem ist ja das der erste vom zweiten block abhaengt - d.h. bei
gzip und 64K bloecken und du hast eine 1MB grosse datei und du aenderst
an stelle 70000 was dann aendern sich alle bloecke danach.

> Man kann ja sowas machen:
> 
> echo Hallo |gzip > datei.gz
> echo Welt |gzip >> datei.gz
> zcat datei.gz
> Hallo
> Welt

Ja - wuerde aber bedeuted das das germany.osm aus einem alten
germany.osm + den diffs also den angehaengten .osc files besteht.

> Interessant ist allerdings:
> 
> ls -la datei.gz
> -rw-r--r-- 1 sven users 51 2008-08-31 09:33 datei.gz
> 
> gunzip datei.gz
> gzip datei
> 
> ls -la datei.gz
> -rw-r--r-- 1 sven users 37 2008-08-31 09:33 datei.gz

Weil  2 mal ein haender angehaengt wird.

> Die Manpage von bzip2 sagt dazu
> >  bzip2  compresses  files  in  blocks, usually 900kbytes long.  Each block 
> > is handled independently. 

Das ist im prinzip bei gzip auch so nur sind die blocke kleiner.

> Das heißt für mich, das sich nie mehr als 900kb am Stück  ändern, wenn man 
> eine Änderung an der Datei vornimmt.

Wenn du ein byte mittendrin einfuegst aendern sich alle bloecke danach
weil sie sich verschieben. 

> Im zweifel könnte man ja die Datei auch unkomprimiert über Rsync übertragen 
> lassen und erst auf der Rsync-Ebene komprimieren (Paramter: -z 
> bzw. --compress)

Das ist IMHO der einzig gangbare weg - die rsync compression kann
systemimmanent aber nie so gut sein wie die compression der ganzen datei
da kleinere bloecke kompremiert werden d.h. irgendeinen tod muss man sterben.

Flo
-- 
Florian Lohoff                  flo at rfc822.org             +49-171-2280134
	Those who would give up a little freedom to get a little 
          security shall soon have neither - Benjamin Franklin
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: Digital signature
URL         : <http://lists.openstreetmap.org/pipermail/talk-de/attachments/20080831/81c3143a/attachment.sig>


Mehr Informationen über die Mailingliste Talk-de