<HTML>
<HEAD>
<TITLE>Re: [OSGeo-Discuss] Re: "git" like for geodata management [SEC=UNCLASSIFIED]</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Ragi,<BR>
<BR>
I agree. I think that we have a way to go yet to have something comparable to the ArcSDE / ArcGIS Multi-versioning and version conflict detection functionality.<BR>
<BR>
The advantage that the ArcSDE solution has is that edits are made directly within the database. This works well within an Enterprise environment as described by Fabio earlier in this thread.<BR>
<BR>
I may be wrong, but I think that git works on files, but I haven’t used it myself. Can git detect changes to the spatial representation of a feature within a binary file?<BR>
<BR>
Also, speaking as someone who implemented an ArcSDE/ArcGIS Multi-versioned edit scenario several years ago, the ESRI solution is far from perfect. It imposes very strict environment management on the system managers, e.g.:<BR>
<BR>
</SPAN></FONT><UL><LI><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>All versions of the software used (client and server) must be at precisely the same version, service pack and patch;
</SPAN></FONT><LI><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>The environment can only use software that implements the ArcObjects environment (from experience, this rules out the use of the ArcSDE Java and C API’s);
</SPAN></FONT><LI><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Editors must be well trained and knowledgeable in using both ArcGIS and Multi-versioned processes;
</SPAN></FONT><LI><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>The Organisation needs to think through their maintenance processes to get best advantage of the functionality; and
</SPAN></FONT><LI><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>It doesn’t remove the need for data maintenance people to talk to each other about work that is going on, as the software cannot resolve all conflicts. For example, if two editors make changes to the spatial representation of a feature, which one is correct? The software will detect the conflict, but the editors (or their managers) will need to resolve the issue of which version of the feature’s spatial representation is correct.<BR>
</SPAN></FONT></UL><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
<BR>
Bruce<BR>
<BR>
<BR>
On 24/09/10 4:05 AM, "Ragi Burhum" <<a href="ragi@burhum.com">ragi@burhum.com</a>> wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Hi Noli,<BR>
<BR>
thanks for the link. That is definitely a step in the right direction, but it is hardly comparable to git ArcSDE versioning at that.<BR>
<BR>
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.<BR>
<BR>
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.<BR>
<BR>
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).<BR>
<BR>
Regardless, thank you for the link,<BR>
<BR>
- Ragi <BR>
<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Date: Thu, 23 Sep 2010 13:22:17 +1000<BR>
From: Noli Sicad <<a href="nsicad@gmail.com">nsicad@gmail.com</a>><BR>
Subject: Re: [OSGeo-Discuss] Re: "git" like for geodata management<BR>
To: OSGeo Discussions <<a href="discuss@lists.osgeo.org">discuss@lists.osgeo.org</a>><BR>
Message-ID:<BR>
<<a href="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 maps.bremen.de <<a href="http://maps.bremen.de">http://maps.bremen.de</a>> <<a href="http://maps.bremen.de">http://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> <<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="ragi@burhum.com">ragi@burhum.com</a>> wrote:<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Are you looking for an alternative to (1)ESRI's versioning, (2)ESRI's<BR>
disconnected editing, or a mix of both (3)git like? the scenario that you<BR>
described first was more like (2), but this one fits (1).<BR>
<BR>
I would love to see something like (3), but truth of the matter, AFAIK,<BR>
there is nothing like that implemented for geo (yet).<BR>
<BR>
On Sep 22, 2010, at 9:00 AM, <a href="discuss-request@lists.osgeo.org">discuss-request@lists.osgeo.org</a> wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>On Wed, 2010-09-22 at 12:10 +0800, maning sambale wrote:<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Any real world cases for this?<BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
Imagine the following scenario:<BR>
<BR>
* 50 ~ 70 digitizers<BR>
* 5 QA<BR>
* 1 Manager<BR>
<BR>
Each QA has 10 digitizers assigned. After all the data is validated, the<BR>
manager merges it and generates the geodb.<BR>
<BR>
All users work against the same DB, most of them linked. This causes<BR>
disconnections, duplicated data, and lots of random errors.<BR>
<BR>
Also, they can't be forced to work on different DB's because they are<BR>
all working on the same project, at the same time.<BR>
<BR>
This is the real scenario of GISWorking (<a href="http://www.gisworking.com/">http://www.gisworking.com/</a>), a<BR>
company we are working with.<BR>
<BR>
It would be perfect to have smaller groups (ideally 1 person), working<BR>
against separated databases, but that can be synchronized with the rest<BR>
of the data when needed.<BR>
<BR>
Then each QA merges data from the people he supervises. After it's<BR>
validated the manager merges the complete dataset, and generates the<BR>
final "product".<BR>
<BR>
I don't know if this it's the exact same case, but we are working on it<BR>
with a similar approach.<BR>
<BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>_______________________________________________<BR>
<FONT COLOR="#005001"><BR>
</FONT></SPAN></FONT></BLOCKQUOTE></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
</SPAN></FONT></BLOCKQUOTE>
</BODY>
</HTML>