[prev in list] [next in list] [prev in thread] [next in thread] 

List:       unison-users
Subject:    [unison-users] Unison xferhint thoughts
From:       "Karl M" <karlm30 () hotmail ! com>
Date:       2006-12-28 6:17:57
Message-ID: BAY125-F72CB702F3EE7E0859CA53B5C70 () phx ! gbl
[Download RAW message or body]

Hi All...

While checking out the latest svn head (2.26.9) I noticed lots of messages 
about disappeared files.

I think that the xferhint insertions in the tryCopyMovedFile serve no 
purpose and actually do harm. If tryCopyMovedFile ever gets called, it is 
because there is a file that can be copied from for that hash. For any other 
new files with that same hash, that same original file can be the source. So 
the xferhint insertions allow more choice in the source for other 
tryCopyMovedFile, but no performance advantage that I can see. But there is 
a downside to the extra hints...the names are transient and when they go 
away (because the file got renamed), they give a disappeared 
condition...which means a lost chance to avoid a transfer.

(1) So I propose removing them from tryCopyMovedFile. Doing so should 
improve performance.

(2) Now a place for some potential savings would be to add xferhint 
insertions when a file is actually transferred. Here the temp name could 
allow piggybacking on an in progress transfer. And an xferhint rename when 
the file is renamed to its final name.

(3) One other place for some advantage would be after an rsync transfer 
completes and the file is renamed to its final name. An xferhint insertion 
here would pick up the case where I have a large file on both roots. I edit 
it on one root, make a copy and then synchronize. We of course only win if 
the rsync finishes before starting the transfer of the copy.

(1), (2) and (3) are roughly in priority order (in my mind). (1) is the 
easiest and has obvious gain. (2) has some gain, but more work to implement. 
(3) probably has less performance gain.

Thanks,

...Karl

_________________________________________________________________
Experience the magic of the holidays. Talk to Santa on Messenger. 
http://clk.atdmt.com/MSN/go/msnnkwme0080000001msn/direct/01/?href=http://imagine-windowslive.com/minisites/santabot/default.aspx?locale=en-us



[Attachment #3 (text/html)]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" \
"http://www.w3.org/TR/html4/strict.dtd"> <html>
<head>
</head>

<!-- Network content -->


<body style="background-color: #ffffff;">

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="width:655px; position:relative;">
  <div id="ygrp-msg" style="width: 490px; padding: 0 15px 0 0; float:left;  \
z-index:1;"> <!--~-|**|PrettyHtmlEndT|**|-~-->

    <div id="ygrp-text">
            <p>Hi All...<br>
<br>
While checking out the latest svn head (2.26.9) I noticed lots of messages <br>
about disappeared files.<br>
<br>
I think that the xferhint insertions in the tryCopyMovedFile serve no <br>
purpose and actually do harm. If tryCopyMovedFile ever gets called, it is <br>
because there is a file that can be copied from for that hash. For any other <br>
new files with that same hash, that same original file can be the source. So <br>
the xferhint insertions allow more choice in the source for other <br>
tryCopyMovedFile, but no performance advantage that I can see. But there is <br>
a downside to the extra hints...the names are transient and when they go <br>
away (because the file got renamed), they give a disappeared <br>
condition...<wbr>which means a lost chance to avoid a transfer.<br>
<br>
(1) So I propose removing them from tryCopyMovedFile. Doing so should <br>
improve performance.<br>
<br>
(2) Now a place for some potential savings would be to add xferhint <br>
insertions when a file is actually transferred. Here the temp name could <br>
allow piggybacking on an in progress transfer. And an xferhint rename when <br>
the file is renamed to its final name.<br>
<br>
(3) One other place for some advantage would be after an rsync transfer <br>
completes and the file is renamed to its final name. An xferhint insertion <br>
here would pick up the case where I have a large file on both roots. I edit <br>
it on one root, make a copy and then synchronize. We of course only win if <br>
the rsync finishes before starting the transfer of the copy.<br>
<br>
(1), (2) and (3) are roughly in priority order (in my mind). (1) is the <br>
easiest and has obvious gain. (2) has some gain, but more work to implement. <br>
(3) probably has less performance gain.<br>
<br>
Thanks,<br>
<br>
...Karl<br>
<br>
____________<wbr>_________<wbr>_________<wbr>_________<wbr>_________<wbr>_________<wbr>_<br>
 Experience the magic of the holidays. Talk to Santa on Messenger. <br>
<a href="http://clk.atdmt.com/MSN/go/msnnkwme0080000001msn/direct/01/?href=http://imag \
ine-windowslive.com/minisites/santabot/default.aspx?locale=en-us">http://clk.atdmt.<wb \
r>com/MSN/go/<wbr>msnnkwme00800000<wbr>01msn/direct/<wbr>01/?href=<wbr>http://imagine- \
<wbr>windowslive.<wbr>com/minisites/<wbr>santabot/<wbr>default.aspx?<wbr>locale=en-<wbr>us</a><br>
 <br>
</p>
    </div>  

    <!--~-|**|PrettyHtmlStart|**|-~-->
    <span width="1" style="color: white;">__._,_.___</span>
    <!-- Start the section with Message In topic -->
    <div id="ygrp-actbar">
              <span class="left">
          <a href="http://groups.yahoo.com/group/unison-users/message/5867;_ylc=X3oDMT \
MzaHVjdHRxBF9TAzk3MzU5NzE0BGdycElkAzQ3OTc2NwRncnBzcElkAzE3MDUwMDQ3MjYEbXNnSWQDNTg2NwRzZWMDZnRyBHNsawN2dHBjBHN0aW1lAzExNjcyODY3MDAEdHBjSWQDNTg2Nw--">
                
            Messages in this topic          </a> (<span class="bld">1</span>)
        </span>
        <a href="http://groups.yahoo.com/group/unison-users/post;_ylc=X3oDMTJvNGpqYm0w \
BF9TAzk3MzU5NzE0BGdycElkAzQ3OTc2NwRncnBzcElkAzE3MDUwMDQ3MjYEbXNnSWQDNTg2NwRzZWMDZnRyBHNsawNycGx5BHN0aW1lAzExNjcyODY3MDA-?act=reply&messageNum=5867">
  <span class="bld">
            Reply          </span> (via web post)
        </a>  | 
        <a href="http://groups.yahoo.com/group/unison-users/post;_ylc=X3oDMTJkMzg3cmVz \
BF9TAzk3MzU5NzE0BGdycElkAzQ3OTc2NwRncnBzcElkAzE3MDUwMDQ3MjYEc2VjA2Z0cgRzbGsDbnRwYwRzdGltZQMxMTY3Mjg2NzAw" \
class="bld">  Start a new topic        </a>
          </div> 
    <!-------     Start Nav Bar  ------>
    <!-- |**|begin egp html banner|**| -->
    <div id="ygrp-vitnav">
                <a href="http://groups.yahoo.com/group/unison-users/messages;_ylc=X3oD \
MTJkcmh0NnF0BF9TAzk3MzU5NzE0BGdycElkAzQ3OTc2NwRncnBzcElkAzE3MDUwMDQ3MjYEc2VjA2Z0cgRzbGsDbXNncwRzdGltZQMxMTY3Mjg2NzAw">Messages</a> \
  
        
        
            |    <a href="http://groups.yahoo.com/group/unison-users/database;_ylc=X3o \
DMTJiMTF1NmcwBF9TAzk3MzU5NzE0BGdycElkAzQ3OTc2NwRncnBzcElkAzE3MDUwMDQ3MjYEc2VjA2Z0cgRzbGsDZGIEc3RpbWUDMTE2NzI4NjcwMA--">Database</a> \
  
        
        
    </div>  
    <!-- |**|end egp html banner|**| -->

    <!-- Do not have place to put it yet -->
    <div id="ygrp-grft">
          </div>

    <!-- yahoo logo -->
    <!-- |**|begin egp html banner|**| -->
    <div id="ygrp-ft">
      <a href="http://groups.yahoo.com/;_ylc=X3oDMTJjYzgxYzUxBF9TAzk3MzU5NzE0BGdycElkA \
                zQ3OTc2NwRncnBzcElkAzE3MDUwMDQ3MjYEc2VjA2Z0cgRzbGsDZ2ZwBHN0aW1lAzExNjcyODY3MDA-">
                
      <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/logo/ma_grp_160.gif" \
height="15" width="106" border="0" alt="Yahoo! Groups"></a> <br>  <a \
href="http://groups.yahoo.com/group/unison-users/join;_ylc=X3oDMTJldDg2NzRuBF9TAzk3MzU \
5NzE0BGdycElkAzQ3OTc2NwRncnBzcElkAzE3MDUwMDQ3MjYEc2VjA2Z0cgRzbGsDc3RuZ3MEc3RpbWUDMTE2NzI4NjcwMA--">Change \
settings via the Web</a> (Yahoo! ID required) <br>  Change settings via email: <a \
href="mailto:unison-users-digest@yahoogroups.com?subject=Email Delivery: \
Digest">Switch delivery to Daily Digest</a> | <a href = \
"mailto:unison-users-traditional@yahoogroups.com?subject=Change Delivery Format: \
Traditional">Switch format to Traditional</a> <br>

      <a href="http://groups.yahoo.com/group/unison-users;_ylc=X3oDMTJjMXBlNXZvBF9TAzk \
3MzU5NzE0BGdycElkAzQ3OTc2NwRncnBzcElkAzE3MDUwMDQ3MjYEc2VjA2Z0cgRzbGsDaHBmBHN0aW1lAzExNjcyODY3MDA-">
  Visit Your Group 
      </a> |
      <a href="http://docs.yahoo.com/info/terms/">
        Yahoo! Groups Terms of Use      </a> |
      <a href="mailto:unison-users-unsubscribe@yahoogroups.com?subject=">
        Unsubscribe      </a> 
    </div>     <!-- |**|end egp html banner|**| -->
  </div> <!-- ygrp-msg -->

  
  <!-- Sponsor -->
  <!-- |**|begin egp html banner|**| -->
  <div id="ygrp-sponsor" style="width:140px;float: left; clear: none; margin-left: \
5px; background:white; margin-bottom:25px ;position:absolute; top:0; right: 0;">  \
<!-- Network content -->  
    <!-- Start vitality -->
    <div id="ygrp-vital">
              <div id="vithd">Recent Activity</div>
        <ul style="list-style-type:none; padding: 0; margin: 2px 0;">
                <li style="clear: both;">
      <div class="ct" style="float: right;"><span \
style="display:none">&nbsp;</span>7</div>  <div class="cat"><a \
href="http://groups.yahoo.com/group/unison-users/members;_ylc=X3oDMTJldWV1anYxBF9TAzk3 \
MzU5NzE0BGdycElkAzQ3OTc2NwRncnBzcElkAzE3MDUwMDQ3MjYEc2VjA3Z0bARzbGsDdm1icnMEc3RpbWUDMTE2NzI4NjcwMA--">New \
Members</a></div>  </li>
  
            
            
            
            
            
        </ul>
            <a href="http://groups.yahoo.com/group/unison-users;_ylc=X3oDMTJkbmJkNGZmB \
F9TAzk3MzU5NzE0BGdycElkAzQ3OTc2NwRncnBzcElkAzE3MDUwMDQ3MjYEc2VjA3Z0bARzbGsDdmdocARzdGltZQMxMTY3Mjg2NzAw">
  Visit Your Group      </a>
    </div> 
                <div id="hd">SPONSORED LINKS</div>
      <div id="ov">
        <ul>
                    <li><a \
href="http://groups.yahoo.com/gads;_ylc=X3oDMTJibDJocjRhBF9TAzk3MzU5NzE0BF9wAzEEZ3JwSW \
QDNDc5NzY3BGdycHNwSWQDMTcwNTAwNDcyNgRzZWMDc2xtb2QEc3RpbWUDMTE2NzI4NjcwMQ--?t=ms&k=Comp \
uter+telephony&w1=Computer+telephony&w2=Portable+computer&w3=Portable+computer+case&w4 \
=Communication+and+networking&w5=Computer+telephony+integration&c=5&s=145&g=2&.sig=bd1ju6uqJx39MEsoiawksg">Computer \
telephony</a></li>  <li><a \
href="http://groups.yahoo.com/gads;_ylc=X3oDMTJibWI4YWZuBF9TAzk3MzU5NzE0BF9wAzIEZ3JwSW \
QDNDc5NzY3BGdycHNwSWQDMTcwNTAwNDcyNgRzZWMDc2xtb2QEc3RpbWUDMTE2NzI4NjcwMQ--?t=ms&k=Port \
able+computer&w1=Computer+telephony&w2=Portable+computer&w3=Portable+computer+case&w4= \
Communication+and+networking&w5=Computer+telephony+integration&c=5&s=145&g=2&.sig=klZKMuOolG_eNWty_hYh4w">Portable \
computer</a></li>  <li><a \
href="http://groups.yahoo.com/gads;_ylc=X3oDMTJiaG5scjRkBF9TAzk3MzU5NzE0BF9wAzMEZ3JwSW \
QDNDc5NzY3BGdycHNwSWQDMTcwNTAwNDcyNgRzZWMDc2xtb2QEc3RpbWUDMTE2NzI4NjcwMQ--?t=ms&k=Port \
able+computer+case&w1=Computer+telephony&w2=Portable+computer&w3=Portable+computer+cas \
e&w4=Communication+and+networking&w5=Computer+telephony+integration&c=5&s=145&g=2&.sig=AsamkASYZNbe7ftQYzzWGQ">Portable \
computer case</a></li>  <li><a \
href="http://groups.yahoo.com/gads;_ylc=X3oDMTJiYmoybmVlBF9TAzk3MzU5NzE0BF9wAzQEZ3JwSW \
QDNDc5NzY3BGdycHNwSWQDMTcwNTAwNDcyNgRzZWMDc2xtb2QEc3RpbWUDMTE2NzI4NjcwMQ--?t=ms&k=Comm \
unication+and+networking&w1=Computer+telephony&w2=Portable+computer&w3=Portable+comput \
er+case&w4=Communication+and+networking&w5=Computer+telephony+integration&c=5&s=145&g=2&.sig=yoxe9tLE4V_B-4X1sEro_A">Communication \
and networking</a></li>  <li><a \
href="http://groups.yahoo.com/gads;_ylc=X3oDMTJiY2Nnbm5nBF9TAzk3MzU5NzE0BF9wAzUEZ3JwSW \
QDNDc5NzY3BGdycHNwSWQDMTcwNTAwNDcyNgRzZWMDc2xtb2QEc3RpbWUDMTE2NzI4NjcwMQ--?t=ms&k=Comp \
uter+telephony+integration&w1=Computer+telephony&w2=Portable+computer&w3=Portable+comp \
uter+case&w4=Communication+and+networking&w5=Computer+telephony+integration&c=5&s=145&g=2&.sig=MRKosOdSpqJyJnCQzkaUqg">Computer \
telephony integration</a></li>  </ul>
      </div>
    
    <!-- Network content -->
                <div id="nc">
              <div class="ad">
                      <div id="hd1">Yahoo! for Good</div>
<p><a href="http://us.ard.yahoo.com/SIG=12jqn0d6c/M=493064.10021865.10705514.9706567/D \
=groups/S=1705004726:NC/Y=YAHOO/EXP=1167293901/A=3836825/R=0/SIG=11fpa9v8q/*http://promotions.yahoo.com/giving/topten.php">Get \
Inspired to Give</a></p>  <p>Donate before the</p> 
<p>end of the year.</p>                  </div>
                    <div class="ad">
                      <div id="hd1">Search Ads</div> 
<p><a href="http://us.ard.yahoo.com/SIG=12idcvusb/M=493064.9803227.10510220.8674578/D= \
groups/S=1705004726:NC/Y=YAHOO/EXP=1167293901/A=3848641/R=0/SIG=1312g85fq/*http://sear \
chmarketing.yahoo.com/arp/srchv2.php?o=US2003&cmp=Yahoo&ctv=Groups2&s=Y&s2=&s3=&b=50">Get \
new customers.</a></p>  <p>List your web site</p> 
<p>in Yahoo! Search.</p>                  </div>
                    <div class="ad">
                      <div id="hd1">Y! Messenger</div> 
<p><a href="http://us.ard.yahoo.com/SIG=12imftlp0/M=493064.9803215.10510209.8674578/D= \
groups/S=1705004726:NC/Y=YAHOO/EXP=1167293901/A=3848581/R=0/SIG=11umg3fun/*http://us.rd.yahoo.com/evt=42403/*http://messenger.yahoo.com">Instant \
hello</a></p>  <p>Chat in real-time</p> 
<p>with your friends.</p>                  </div>
          </div>
      
  </div>   <!-- |**|end egp html banner|**| -->
  <div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div> <img src="http://geo.yahoo.com/serv?s=97359714/grpId=479767/grpspId=1705004726/msgId=5867/stime=1167286700/nc1=3836825/nc2=3848641/nc3=3848581" \
width="1" height="1"> <br> <span  style="color: white;">__,_._,___</span>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</body>
<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mlmsg {font-size:13px; font-family: \
arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;} #ygrp-mlmsg table \
{font-size:inherit;font:100%;} #ygrp-mlmsg select, input, textarea {font:99% \
arial,helvetica,clean,sans-serif;} #ygrp-mlmsg pre, code {font:115% \
monospace;*font-size:100%;} #ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
    font-family: Georgia;	
}
#ygrp-text p{
    margin: 0 0 1em 0;
}
#ygrp-tpmsgs{
    font-family: Arial;	
    clear: both;
}
#ygrp-vitnav{
	padding-top: 10px;
	font-family: Verdana;
	font-size: 77%;
	margin: 0;
}
#ygrp-vitnav a{
	padding: 0 1px;
}
#ygrp-actbar{
	clear: both;
	margin: 25px 0;
	white-space:nowrap;
	color: #666;
	text-align: right;
}
#ygrp-actbar .left{
	float: left;
	white-space:nowrap;
}
.bld{font-weight:bold;}
#ygrp-grft{
	font-family: Verdana;
	font-size: 77%;
	padding: 15px 0;
}
#ygrp-ft{
  font-family: verdana;
  font-size: 77%;
  border-top: 1px solid #666; 
  padding: 5px 0; 
}
#ygrp-mlmsg #logo{
  padding-bottom: 10px;
}

#ygrp-vital{
	background-color: #e0ecee;
	margin-bottom: 20px;
	padding: 2px 0 8px 8px;
}
#ygrp-vital #vithd{
	font-size: 77%;
	font-family: Verdana;
	font-weight: bold;
	color: #333;
	text-transform: uppercase;
}
#ygrp-vital ul{
	padding: 0;
	margin: 2px 0;
}
#ygrp-vital ul li{
  list-style-type: none;
  clear: both;
  border: 1px solid #e0ecee;  
}
#ygrp-vital ul li .ct{
  font-weight: bold;
  color: #ff7900;
  float: right;
  width: 2em;
  text-align:right;
  padding-right: .5em;
}
#ygrp-vital ul li .cat{
  font-weight: bold;
}
#ygrp-vital a {
	text-decoration: none;
}

#ygrp-vital a:hover{
  text-decoration: underline;
}

#ygrp-sponsor #hd{
	color: #999;
	font-size: 77%;
}
#ygrp-sponsor #ov{
	padding: 6px 13px;
	background-color: #e0ecee;
	margin-bottom: 20px;
}
#ygrp-sponsor #ov ul{
	padding: 0 0 0 8px;
	margin: 0;
}
#ygrp-sponsor #ov li{
	list-style-type: square;
	padding: 6px 0;
	font-size: 77%;
}
#ygrp-sponsor #ov li a{
	text-decoration: none;
	font-size: 130%;
}
#ygrp-sponsor #nc {
  background-color: #eee;
  margin-bottom: 20px;
  padding: 0 8px;
}
#ygrp-sponsor .ad{
	padding: 8px 0;
}
#ygrp-sponsor .ad #hd1{
	font-family: Arial;
	font-weight: bold;
	color: #628c2a;
	font-size: 100%;
	line-height: 122%;
}
#ygrp-sponsor .ad a{
	text-decoration: none;
}
#ygrp-sponsor .ad a:hover{
	text-decoration: underline;
}
#ygrp-sponsor .ad p{
	margin: 0;
}
o {font-size: 0; }
.MsoNormal {
   margin: 0 0 0 0;
}
#ygrp-text tt{
  font-size: 120%;
}
blockquote{margin: 0 0 0 4px;}
.replbq {margin:4}
-->
</style>
</head>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</html><!--End group email -->



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic