How to do data merging

Dave Woodward davewoodward at promedmedical.net
Wed Feb 3 18:36:25 UTC 2010


I'm using Magma in a project where there are users who have their own 
offline Magma database for data collection.

When these users have an internet connection, their data will be 
uploaded and "merged" with the data in the Magma database on the 
server.  Both the server and the client are running Pharo.

The user will pretty much be the master of their own subset of data, 
however the data could be changed on the server.

My question is if there is already any functionality within Magma to 
perform some sort of "data merge"?  I think I'll have to make the 
algorithm myself.  Right now I'm thinking of making some sort of a 
"changeset" on each individual object in the database that tracks 
changed to specific ivars, and the merge would compare read/write 
timestamps and then fall back on examining the individual changes, and 
finally throw some error and allow the user to manually choose the 
winning data.

I've seen, but never used, the MVCC and change conflicts that CouchDB 
does on a per-document basis and I'm kind of thinking in those terms.

But I'd just like to know if there is already something out there that I 
may not know about that I can use.

Any feedback would be appreciated!  Thanks!

-- 
Dave Woodward
...................................................
www.promedmedical.net
davewoodward at promedmedical.net



More information about the Magma mailing list