If you think about Linux distributions, you see a number of approaches:<div>1 Software makes the mirror selection</div><div>2 User makes Mirror selection.</div><div><br></div>Given the clients cited above, only if the Software chooses the mirror are coding changes necessary.   The Software developer must also make decisions about the mirrors are checked.<div>
<br></div><div>As long as Crosswire has policies in place govererning official mirrors there should no no worries mirrors are out of sync, in which case preferred mirror selection can be left to the user, and indeed mirror checking behaviour configurable.</div>
<div><br></div><div>That said, I have no doubt there are clients out there that need better support for mirror configuration.  That&#39;s not going to happen until Crosswire mirrors exist however.</div><div><br></div><div>
~A<span></span><br><div><br>On Monday, January 7, 2013, Chris Burrell  wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I concur with DM, the Sword/JSword/UIs would have to change. I&#39;ve had that issue with having modules in both the normal repo and the (old?) beta repository. The frontends give a false impression as to which module came from which repository.<div>

<br></div></div><div><br><br><div>On 7 January 2013 19:50, DM Smith <span dir="ltr">&lt;<a>dmsmith@crosswire.org</a>&gt;</span> wrote:<br>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><div><div>On Jan 7, 2013, at 2:04 PM, Andrew Thule &lt;<a>thulester@gmail.com</a>&gt; wrote:</div>

<br><blockquote type="cite"><div dir="ltr"><div>Ok.  In your example you have two levels of mirrors, root and banch.</div><div> </div><div>If we assume all mirrors are synced (exactly the same), the client (if it supports more than a preferred mirror) will check its mirrors in the order they are specified.</div>

</div></blockquote><div><br></div></div>This is precisely my point: Client software has to change.</div><div><div><br><blockquote type="cite"><div dir="ltr">
<div> </div><div>So in your case, Y will check A. D. and E. in that order (assuming it checks all of its configured mirrors)</div><div>If all mirrors are exactly the same however, it doesn&#39;t need to check A. D. and E.  It only needs to check A.  If A is down, it will check D. etc.</div>


<div> </div><div>If a change is made at the top level however, say an ESV update, there is a propigation time it takes for the mirrors to catch up.  With high volume Linux mirrors this is minutes.  If Crosswire were to have mirrors, it might have a policy that says something like mirrors are to syncronise no more than 24 hours no less than 6.</div>


<div> </div><div>That means in your demonstration it may take A. D. and E. upto 24 hours to reflect the change.  Unlike Linux distributions however, its likely there can be some tollerance for such propigation effects.</div>

</div></blockquote><div><br></div></div>In my case, B is licensed only to CrossWire for distribution. E is the a module which has been added to one mirror but not on the master, say the DSS. These two are not true mirrors.</div>

<div><br></div><div>SWORD and JSword can be configured with multiple repositories. They handle them differently. But suffice it to say that they expect that a module is in one and only one repository. The behavior is undefined if it occurs in more than one.</div>

<div><div><div><br><blockquote type="cite"><div dir="ltr">
<div> </div><div>~A</div><div> </div><div> </div></div><div><br><br><div>On Mon, Jan 7, 2013 at 1:52 PM, DM Smith <span dir="ltr">&lt;<a>dmsmith@crosswire.org</a>&gt;</span> wrote:<br>

<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">I guess I need more information on mirrors.<div><br></div><div>Let&#39;s say that there are to mirrors X and Y. For what ever reason, X has A, B, C, D and Y has A, D, E. Software is configured to use Y. When it goes to get a list of files, what does it get? If it requests B, what does it get? Same questions for software configured for X and request for E.</div>


<span><font color="#888888"><div><br></div><div>-- DM</div></font></span><div><div><div><br></div><div><br><div><div>On Jan 7, 2013, at 1:06 PM, Andrew Thule &lt;<a>thulester@gmail.com</a>&gt; wrote:</div>

<br><blockquote type="cite"><div dir="ltr"><div>My experience with mirrors is that mirrors are done at the level of the Operating Systems.  Tools like &#39;rsync&#39;, &#39;lsync&#39;, &#39;chron&#39; etc manage the integrity and distribution of these things.</div>




<div> </div><div>That said, I think what you&#39;re saying is that you believe the Sword client needs some additional support to support mirrors, and I don&#39;t think that&#39;s entirely true.  It may be that support for mirrors would be better accomplished through additional patches, but as it stands now I get all of Crosswire&#39;s modules as a proxy through either my public or private repo for the very simply reason it&#39;s safer for me to do so.</div>




<div> </div><div>I have no trouble getting Sword/Crosswire modules from a &#39;mirror&#39; (as a proxy), technically which means most clients (though perhaps not all) can manage this.</div><div> </div><div>So I&#39;m speaking specifically about Bibletime, Xiphos, Alkitab, PocketSword, and Eloquent.  If there are other clients out there, and Crosswire pursues &#39;mirrors&#39;, that decision will influence development.</div>



<div> </div><div>~A</div>
</div><div><br><br><div>On Mon, Jan 7, 2013 at 12:55 PM, DM Smith <span dir="ltr">&lt;<a>dmsmith@crosswire.org</a>&gt;</span> wrote:<br>


<blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid"></blockquote></div></div></blockquote></div></div></div></div></div></blockquote>
</div></div></blockquote></div></div></div></div></blockquote></div></div></blockquote></div></div>