<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.airmailon, li.airmailon, div.airmailon
        {mso-style-name:airmail_on;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">..actually if it’s been disconnected too long (i.e. the journals no longer exist), it does a bulk replication which is not necessarily a full copy. It’s a delta copy of what’s missing.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Note though that with Database replication you’re subject to replication lag limits that you may need to monitor. Also, adding and removing replicas is a configuration change that may be more heavyweight than adding a flexrep target.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> general-bounces@developer.marklogic.com [mailto:general-bounces@developer.marklogic.com]
<b>On Behalf Of </b>Ron Hitchens<br>
<b>Sent:</b> Monday, January 29, 2018 7:32 AM<br>
<b>To:</b> MarkLogic Developer Discussion &lt;general@developer.marklogic.com&gt;<br>
<b>Subject:</b> Re: [MarkLogic Dev General] Rsync-Like DB Contents Comparison and Update?<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div id="bloop_customfont">
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:&quot;Helvetica&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
</div>
<div id="bloop_customfont">
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:&quot;Helvetica&quot;,sans-serif">&nbsp; &nbsp;I would suggest looking at direct, low-level database replication if your copies can be read-only and your goal is exact duplicate databases.&nbsp; In this case MarkLogic keeps
 the databases in sync by sending low-level journal frames rather than syncing individual documents.&nbsp; If a slave is disconnected for a while it will quickly catch up as the master sends the frames it’s missed.&nbsp; If it’s been disconnected too long, or is newly
 connected, a zero day full copy is sent (depending on your bandwidth, 3GB is not a lot of data to send).<o:p></o:p></span></p>
</div>
<div id="bloop_customfont">
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:&quot;Helvetica&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
</div>
<div id="bloop_customfont">
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:&quot;Helvetica&quot;,sans-serif"><a href="https://docs.marklogic.com/guide/database-replication">https://docs.marklogic.com/guide/database-replication</a>&nbsp;<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:&quot;Helvetica&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<div id="bloop_sign_1517239419046614272">
<div>
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:&quot;Helvetica&quot;,sans-serif">----<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:&quot;Helvetica&quot;,sans-serif">Ron Hitchens&nbsp;<a href="mailto:ron@overstory.co.uk">ron@overstory.co.uk</a>, &#43;44 7879 358212<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:&quot;Helvetica&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
</div>
</div>
<p class="airmailon"><span style="font-size:11.5pt;font-family:&quot;Helvetica&quot;,sans-serif">On January 27, 2018 at 6:13:12 PM, Eliot Kimber (<a href="mailto:ekimber@contrext.com">ekimber@contrext.com</a>) wrote:<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:&quot;Helvetica&quot;,sans-serif">ML 9<br>
<br>
I have a system of server</span><span style="font-size:11.5pt;font-family:&quot;Tahoma&quot;,sans-serif"></span><span style="font-size:11.5pt;font-family:&quot;Helvetica&quot;,sans-serif">s where a master server gets new remote servers allocated it more or less randomly and dynamically.<br>
<br>
The remote servers need to have a correct copy of a databse on the master server but the database is pretty big (the previously-mentioned 380K doc, 3GB database).<br>
<br>
I can of course sync it with FlexRep but when a new server comes available I don't know what the current state of its local copy of the database is (if it has one at all) so I'm forced to recreate my master server's replication targets and do a full push, which
 takes an hour or two. <br>
<br>
In the case where the remote server already has a copy of the database I would like to be able to compare it's contents to the master's and determine what the deltas are, if any, and only handle those, which usually would only be a few docs out of the total
 set.<br>
<br>
Does there exist this kind of rsync or git-like comparison mechanism, either out of the box or as a public project?<br>
<br>
I'm thinking of something comparable to what git does, which is create hashes of each file and then comparing hashes.
<br>
<br>
I could do this in XQuery but I suspect something more efficient could be done at the forest level, if one knew what one was doing.<br>
<br>
Thanks,<br>
<br>
Eliot<br>
--<br>
Eliot Kimber<br>
<a href="http://contrext.com">http://contrext.com</a><br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
General mailing list<br>
<a href="mailto:General@developer.marklogic.com">General@developer.marklogic.com</a><br>
Manage your subscription at: <br>
<a href="http://developer.marklogic.com/mailman/listinfo/general">http://developer.marklogic.com/mailman/listinfo/general</a><o:p></o:p></span></p>
</div>
</div>
</blockquote>
</div>
</body>
</html>