On 18.12.12 15:34, Thomas Mueller wrote:
Hi,
So, do "move" and "copy" operations need to be preserved, or can they be
converted to "add node" / "remove node"?
Now we are getting somewhere: This is exactly the original topic of
OAK-464. If the Microkernel converts moves to add/remove, implementing
rebase on top of that results in moves of big sub trees to become *very*
expensive.
As far as I know, in MongoDB, moves are implemented as "copy & delete", so
I don't think performance is a problem.
But I guess memory usage would be a problem if the whole subtree has to be
put in a Json document. MicroKernel.getJournal could lead to out of memory
for large move & copy operations, unless those operations are at least
somewhat preserved in the journal. As far as I understand, both
MicroKernel implementations do return move operations, so I guess it's not
a problem in practice(?)
Yes but it was you who said earlier:
"But the question is how close the journal has to match the original
commit, specially "move" and "copy" operations.
So, do "move" and "copy" operations need to be preserved, or can they be
converted to "add node" / "remove node"?"
in order to circumvent the problem of inconsistent journals.
Which leaves me a bit clueless on what you mean with "not a problem in
practice".
Michael
Regards,
Thomas