Re: lug-bg: wget -m
- Subject: Re: lug-bg: wget -m
- From: Peter Pentchev <roam@xxxxxxxxxxx>
- Date: Tue, 8 Jun 2004 19:47:29 +0300
On Tue, Jun 08, 2004 at 07:20:45PM +0300, George Danchev wrote:
> On Monday 07 June 2004 14:33, Peter Pentchev wrote:
> --кръц--
> > Само да отворя една скобичка за малко вметване: CVSup също изобщо не е
> > лош вариант, стига този, от когото mirror-ваш, да е съгласен да си пусне
> > CVSup сървърче. Такива напоследък се нароиха доста, защото CVSup вече
>
> CVSup е много добра утил-ка.
> Ама в случая не идваше на питащия да му предлагам cvsup ;-)
>
> > не е само начинът на mirror-ване на FreeBSD; има още поне 3-4 големи
> > open source проекта, които използват това за своите мрежи. Като
> > количество прехвърлен трафик CVSup е на нивото на rsync, а според някои
>
> Е CVS протокола е с пъти по-тежък/усложнен от rsync протокола и това е защото
> cvs протокола е предвиден да се разправя с rcs-files/versioning/tags/alabala.
> Това е едно от големите му недостатъци и вероятно причина да се измислят
> по-ефективни протоколи като SVN.
Чакай, чакай... нали не мислиш, че CVSup използва същия протокол, който
се използва между CVS клиент и CVS сървър при check-in, check-out, log,
status и т.н.? :) Всъщност двете нямат нищо, ама нищо общо :)
Когато CVSup установи, че това, което прехвърля, е RCS/CVS version file,
то "по жицата" се прехвърля много бързо информация за това кои
revisions, tags, branches има при клиента, и ако при сървъра няма нищо
друго, не се прави нищо. Ако се окаже, че има разлики, се предават само
разликите *като diffs*, т.е. като RCS revision info. Според мен това би
могло да бъде много по-бързо от опитите на rsync да намери разликите във
файловете по една проста причина: CVSup вече *знае* точно къде са
разликите във файловете, точно от кое отместване във файла започват,
къде свършват и т.н., и изобщо не се опитва да сравнява останалите части
от файловете. Е, накрая се прави някаква checksum, за да се убедят
клиентът и сървърът, че наистина имат един и същи файл де :)
Като цяло rsync протоколът е замислен за минимално количество мрежов
трафик *без никаква информация за съдържанието на файловете*, затова на
моменти използва доста интересни алгоритми (това с rolling checksum е
*прекрасна* идея), някои от които са описани в technical report-а на
http://rsync.samba.org/tech_report/ Това е много хубаво, когато
наистина никой не знае нищо за файловете, но според мен (а явно и според
John Polstra) допълнителната информация, съдържащата се в headers на RCS
files, може да спести доста анализ и претърсване за съвпадащи блокове.
> А за non-rcs-files CVSup използва rsync протокола, явно собствена
> имплементация, а не направо librsync(3) явно поради езикови различия.
> Така, че както в случая се джиткат non-rcs-files, и се използва rsync
> протокола/алгоритъма, то аз лично предпочитам да използвам програмата rsync.
Can't argue with that.. или поне в момента няма да се опитвам :P
Поздрави,
Петър
--
Peter Pentchev roam@xxxxxxxxxxx roam@xxxxxxxx roam@xxxxxxxxxxx
PGP key: http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553
I am the meaning of this sentence.
Attachment:
pgpcQnLU5jbmt.pgp
Description: PGP signature
|