<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 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@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:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","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.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.apple-tab-span
        {mso-style-name:apple-tab-span;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
 /* List Definitions */
 @list l0
        {mso-list-id:574509614;
        mso-list-type:hybrid;
        mso-list-template-ids:687893916 -1701525004 201916419 201916421 201916417 201916419 201916421 201916417 201916419 201916421;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:18.0pt;
        text-indent:-18.0pt;
        font-family:"Arial","sans-serif";
        mso-fareast-font-family:"Times New Roman";}
@list l1
        {mso-list-id:2017077570;
        mso-list-type:hybrid;
        mso-list-template-ids:-578892342 -865047698 201916419 201916421 201916417 201916419 201916421 201916417 201916419 201916421;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Arial","sans-serif";
        mso-fareast-font-family:"Times New Roman";}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
-->
</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 bgcolor=white lang=EN-AU link=blue vlink=purple>

<div class=WordSection1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hi<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'>Versions are also used to demarcate the the geospatial
transaction boundary. I didn’t see this point articulated.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'>We have been sucessfully running replication of ArcSDE geodatabase
from data maintenance environment to different geodatabase repositories (about
150 repositories) for many years now through event-driven mediation framework. Because
we had used the event-driven mediation approach, we could replicate
irrespective of the version or the vendor. <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'>Because ESRI didn’t support robust replication before, we did this
ourselves. In gist the version is boundary of each geospatial transaction. When
a version is posted, the transactions in it are picked up and shipped across as
XML event feeds. <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'>I published this as a paper. I can send it to anyone interested.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoListParagraph style='margin-left:18.0pt;text-indent:-18.0pt;
mso-list:l0 level1 lfo2'><![if !supportLists]><span style='font-size:10.0pt;
font-family:"Arial","sans-serif";color:#1F497D'><span style='mso-list:Ignore'>-<span
style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
style='font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D'>Kalyan<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:
"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;
font-family:"Tahoma","sans-serif"'> discuss-bounces@lists.osgeo.org
[mailto:discuss-bounces@lists.osgeo.org] <b>On Behalf Of </b>Ragi Burhum<br>
<b>Sent:</b> Friday, 24 September 2010 4:06 AM<br>
<b>To:</b> discuss@lists.osgeo.org; Noli Sicad<br>
<b>Subject:</b> [OSGeo-Discuss] Re: "git" like for geodata management<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<p class=MsoNormal>Hi Noli,<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>thanks for the link. That is definitely a step in the right
direction, but it is hardly comparable to git ArcSDE versioning at that.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>The article and sample code you describe above generates
hashes for all rows and tables in the db and compares them to the target db. So
1 million rows in a db, regardless if the two dbs are identical, would cause 1
million hashes to go over the wire. Every single time you ask to sync you pay
the price.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>Git and ArcSDE keep track of changesets, and when it is time
to synchronize, they exchange that changeset and apply it. One insert? That is
all that needs to be sent.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>Another issue is that there is nothing about conflict
resolution there (what happens when you delete one row in one db and modify it
in another one?). There is also the problem of allowing multiple versions of
the data in the same db (Like having multiple heads).<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>Regardless, thank you for the link,<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>- Ragi <o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<div>

<p class=MsoNormal>Date: Thu, 23 Sep 2010 13:22:17 +1000<br>
From: Noli Sicad <<a href="mailto:nsicad@gmail.com">nsicad@gmail.com</a>><br>
Subject: Re: [OSGeo-Discuss] Re: "git" like for geodata management<br>
To: OSGeo Discussions <<a href="mailto:discuss@lists.osgeo.org">discuss@lists.osgeo.org</a>><br>
Message-ID:<br>
<span class=apple-tab-span>            </span><<a
href="mailto:AANLkTi=3anC4BAANd4HK9UUZFsasXn-8ybPNKYoNG+Fw@mail.gmail.com">AANLkTi=3anC4BAANd4HK9UUZFsasXn-8ybPNKYoNG+Fw@mail.gmail.com</a>><br>
Content-Type: text/plain; charset=ISO-8859-1<br>
<br>
PostgreSQL Synchronization Tool  --- psync [1]<br>
<br>
" The article introduces a method of synchronizing two PostgreSQL<br>
databases. Although, this seems to be an easy task, no product (slony,<br>
londiste, ...) really satisfied the needs within the <a
href="http://maps.bremen.de">maps.bremen.de</a><br>
project. Either they have special prerequsits that didn't apply for<br>
our problem or they didn't support synchronizing of large objects.<br>
<br>
Large objects are used to store tiles of a street/aerial map within<br>
PostgreSQL. My GIS-server queries the database and gets the tiles out.<br>
By using this construction we are getting a flexible infrastructure<br>
for updating and maintaining different versions of the maps.<br>
<br>
Everything was working fine until the service needs to be spread over<br>
three servers. How can we easily synchronize the databases? I really<br>
found no really working solution that is clean and easy to use.  "<br>
<br>
[1]<a href="http://www.codeproject.com/KB/database/psync.aspx">http://www.codeproject.com/KB/database/psync.aspx</a><br>
<br>
<br>
Noli<br>
<br>
On 9/23/10, Ragi Burhum <<a href="mailto:ragi@burhum.com">ragi@burhum.com</a>>
wrote:<br>
<br>
<o:p></o:p></p>

<p class=MsoNormal>Are you looking for an alternative to (1)ESRI's versioning,
(2)ESRI's<o:p></o:p></p>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>disconnected editing, or a mix of both (3)git like? the
scenario that you<o:p></o:p></p>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>described first was more like (2), but this one fits (1).<o:p></o:p></p>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><o:p> </o:p></p>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>I would love to see something like (3), but truth of the
matter, AFAIK,<o:p></o:p></p>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>there is nothing like that implemented for geo (yet).<o:p></o:p></p>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><o:p> </o:p></p>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>On Sep 22, 2010, at 9:00 AM, <a
href="mailto:discuss-request@lists.osgeo.org">discuss-request@lists.osgeo.org</a>
wrote:<o:p></o:p></p>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><o:p> </o:p></p>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>On Wed, 2010-09-22 at 12:10 +0800, maning sambale wrote:<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>Any real world cases for this?<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><o:p> </o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>Imagine the following scenario:<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><o:p> </o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>* 50 ~ 70 digitizers<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>* 5 QA<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>* 1 Manager<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><o:p> </o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>Each QA has 10 digitizers assigned. After all the data is
validated, the<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>manager merges it and generates the geodb.<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><o:p> </o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>All users work against the same DB, most of them linked.
This causes<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>disconnections, duplicated data, and lots of random errors.<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><o:p> </o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>Also, they can't be forced to work on different DB's because
they are<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>all working on the same project, at the same time.<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><o:p> </o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>This is the real scenario of GISWorking (<a
href="http://www.gisworking.com/">http://www.gisworking.com/</a>), a<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>company we are working with.<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><o:p> </o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>It would be perfect to have smaller groups (ideally 1
person), working<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>against separated databases, but that can be synchronized
with the rest<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>of the data when needed.<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><o:p> </o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>Then each QA merges data from the people he supervises.
After it's<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>validated the manager merges the complete dataset, and
generates the<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>final "product".<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><o:p> </o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>I don't know if this it's the exact same case, but we are
working on it<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>with a similar approach.<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><o:p> </o:p></p>

</blockquote>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal>_______________________________________________<o:p></o:p></p>

</blockquote>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><o:p> </o:p></p>

</blockquote>

</div>

</blockquote>

</div>

<font size="1"><font size="2"><p /><hr /><p /><p>This message is intended for the addressee named and may contain confidential information. If you are not the <font size="2">intended recipient, please delete it and notify the sender. </font><font size="2">Views expressed in this message are those of the </font><font size="2">individual sender, and are not necessarily the views of </font><font size="2">the Land and Property Management Authority. </font><font size="2">This email message has been swept by MIMEsweeper </font><font size="2">for the presence of computer viruses.</font> </p><p /><hr /><p><font face="Helvetica-Bold" color="#003200" size="2"></font></p><p align="left"><font face="arial,helvetica,sans-serif"><strong>Please consider the environment before printing this email.</strong></font></p></font></font>
</body>

</html>