On Dec 7, 2005, at 1:16 PM, Joel Guillod wrote:

Wanted functions:
- To be able to synchronize each set (in order to have mirrors sets of the xml documents);

This can be rather simple to accomplish. Add a last modified date stamp to each document. Have a master db with the up-to-date version of all documents. On a regular basis, maybe every minute or longer, look to see what data sets acquired a last modified date that is greater than the last stored last modified date. If a document has been modified, send it to the master server. Periodically, every so often, look to see if the master has any documents older than your last last modified date. If so, grab those and replace what you have internally.

Of course, all this postulates that your data does not change rapidly OR that you infrequently have two people modifying the same data set at the same time. If that is not a valid assumption, then you'll need to institute a locking mechanism. When someone wants to change something, make them press a button to indicate the desire to lock that record. Grab the updates, send a record lock (with a time stamp) to the master, and then give them some number of minutes to make the desired changes. If the changes are not made within the desired amount of time, have the master unlock the record and have the client not save the changes (unless no one else has made a change to the record which you can tell by the timestamp at the master).

But the key to it all is to date time stamp everything. Also, you are using a date time stamp but keep in mind that clocks can get out of sync so treat the date timestamp as an incrementing marker, not as the actual time. Thus, when you update to the master, the master creates the timestamp and that is what is used throughout the system.

Kee Nethery
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to