Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: wget -m


  • Subject: Re: lug-bg: wget -m
  • From: George Danchev <danchev@xxxxxxxxx>
  • Date: Tue, 8 Jun 2004 21:07:37 +0300

On Tuesday 08 June 2004 19:47, Peter Pentchev wrote:
> On Tue, Jun 08, 2004 at 07:20:45PM +0300, George Danchev wrote:
--cut--
> > Е CVS протокола е с пъти по-тежък/усложнен от rsync протокола и това е
> > защото cvs протокола е предвиден да се разправя с
> > rcs-files/versioning/tags/alabala. Това е едно от големите му недостатъци
> > и вероятно причина да се измислят по-ефективни протоколи като SVN.
>
> Чакай, чакай... нали не мислиш, че CVSup използва същия протокол, който

Мда не го написах правилно, трябваше да нашиша "CVS и CVSup протоколите..."

> се използва между CVS клиент и CVS сървър при check-in, check-out, log,
> status и т.н.? :)  Всъщност двете нямат нищо, ама нищо общо :)

Ами да ти кажа честно doc/Protocol в сорса на CVSup много ми прилича на CVS 
протокола, ама много... същата сложност... не казвам, че съм спец по CVS 
протокола де.. но не искам да спорим доколко CVSup протокола е по-лек от CVS. 
А иначе ясно е, че са различни защото отгоре на doc/Protocol седи копирайта 
на jdp Джон Полстра.

> Когато CVSup установи, че това, което прехвърля, е RCS/CVS version file,
> то "по жицата" се прехвърля много бързо информация за това кои
> revisions, tags, branches има при клиента, и ако при сървъра няма нищо
> друго, не се прави нищо.  Ако се окаже, че има разлики, се предават само
> разликите *като diffs*, т.е. като RCS revision info.  Според мен това би
> могло да бъде много по-бързо от опитите на rsync да намери разликите във
> файловете по една проста причина: CVSup вече *знае* точно къде са
> разликите във файловете, точно от кое отместване във файла започват,
> къде свършват и т.н., и изобщо не се опитва да сравнява останалите части
> от файловете.  Е, накрая се прави някаква checksum, за да се убедят
> клиентът и сървърът, че наистина имат един и същи файл де :)

Ама, абсолютно съм съгласен, и в предното писмо ако погледнеш пак ще видиш, че 
съм сравнил два Revision_Control_System протокола като CVS и SVN 
(subversion) ... Все още съм на мнение, че CVSup протокола не е с пъти 
по-олекотен от CVS протокола (много си приличат даже), който пък е с пъти 
по-тежък от SVN (но това си е мое мнение, де). Т.е. това е случая когато 
имаме информация за съдържанието/разликите на файловете. 
Втория случай, когато нямаме информация за съдържанието/разликите на 
файловете, всички използват RSYNC протокола, включително и самата програма 
cvsup, само, че явно със собствена имплементация на този протокол, а не както 
rduff се обляга на librsync.

> Като цяло rsync протоколът е замислен за минимално количество мрежов
> трафик *без никаква информация за съдържанието на файловете*, затова на
> моменти използва доста интересни алгоритми (това с rolling checksum е
> *прекрасна* идея), някои от които са описани в technical report-а на
> http://rsync.samba.org/tech_report/  Това е много хубаво, когато
> наистина никой не знае нищо за файловете, но според мен (а явно и според
> John Polstra) допълнителната информация, съдържащата се в headers на RCS
> files, може да спести доста анализ и претърсване за съвпадащи блокове.

Сигурен ли си, че няма случаи когато да се анализират и трансферират *само* 
описанието на разликите между два файла е повече трафик отколкото ако направо 
се предаде новия файл ;-) Напиши си едно файлче 100 реда, въведи корекции 
през ред (това ratio май е много убииствено, аре през два реда ;-) и извади 
най-евтиния diff между двата файла и ще видиш, че ще е по-голям от всеки от 
тези файлове взети поотвелно, а ако въведеш промени на всеки ред в първия 
файл, най-вероятно резултантния най-евтин diff ще е по-голям и от двата файла 
взети заедно... Така, че "паразитната" описателна информация може и да 
пречи... Освен ако cvsup не използва някакъв супер евтин алгоритъм за 
дифф ;-)

Хайде няма да извеждаме и чертаеме графика на двете функции с описателна и без 
описателна информация и да гледаме къде се пресичат, демек точката в която 
няма значение дали ще има или няма такава информация то трансфера ще е един и 
същи и при какво количество промени ще пречи една такава допълнителна 
информация и където започвайки да я анализираш вече си вътре с трафика... 
Тема за анализ за ФМИ, not me ;-) 

> > А за non-rcs-files CVSup използва rsync протокола, явно собствена
> > имплементация, а не направо librsync(3) явно поради езикови различия.
> > Така, че както в случая се джиткат non-rcs-files, и се използва rsync
> > протокола/алгоритъма, то аз лично предпочитам да използвам програмата
> > rsync.
>
> Can't argue with that.. или поне в момента няма да се опитвам :P

Good.

-- 
pub 4096R/0E4BD0AB  2003-03-18  <keyserver.bu.edu ; pgp.mit.edu>
fingerprint 1AE7 7C66 0A26 5BFF DF22 5D55 1C57 0C89 0E4B D0AB 
============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.