Chris Withers wrote:
Steve Alexander wrote:
Don't see why not. When an object is changed, the new object is just appended to the end of Data.fs. Unless you use undo, or you pack the Data.fs.
You missed the problem ;-)
Technically, there is no problem...
Logically, what happens if one user updates and object on one machien and another user on another machines, after which you merge the data.fs's?
I'm thinkthing of the things which result in Notes Replication/Save conflicts...
What does Lotus Notes offer to do if you get such a conflict? I'm probably talking rubbish in what follows, because I don't have much of an idea how these things really work... ---- The server has a data.original. You take a copy of this, called data.chris. You use this for a while, and data gets appended to data.chris. Someone else is using the server, and data.original gets appended to. Later, you want to recombine the changes, so you do as follows: Create a data.original.before_fork that is the data.original just before you took the copy data.chris. (You can work this out by looking at the modified data.original and data.chris). Create a list of the combined transactions (in order of time, I guess) that happened on the server, and to data.chris. Within one monsterous transaction, apply the list of combined transactions using the usual under-the-hood ZODB machinery. Use Jim's new conflict resolution algorithm to try to settle conflicts. If a conflict can't be settled, ask interactively, or apply some sort of policy (like "chris always wins" for example) and log the lost changes. ---- -- Steve Alexander Software Engineer Cat-Box limited http://www.cat-box.net