Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » [CDO] Efficiently moving a large containment structure
[CDO] Efficiently moving a large containment structure [message #1860009] Mon, 10 July 2023 13:34 Go to next message
Robert Schulk is currently offline Robert SchulkFriend
Messages: 144
Registered: July 2015
Senior Member
I need to move an object which has a quite deep containment structure.
If I simply change the parent container of the object, the commit operation takes quite some time.

Is it possible in any way to speed this process up? From what I saw, the CDOIDs of the contained objects stay the same.
Re: [CDO] Efficiently moving a large containment structure [message #1860013 is a reply to message #1860009] Mon, 10 July 2023 16:24 Go to previous messageGo to next message
Eike Stepper is currently offline Eike StepperFriend
Messages: 6682
Registered: July 2009
Senior Member
Hi Robert,

I doubt it, but if you have a concrete idea we can certainly discuss it. Some hints:

1) Profile the commit operation in client and server to get clues about where the time is being spent.
2) Use the Net4j Channels view to get clues about how many and what exact signals go over the wire.
3) I'm pretty sure that the server has quite a bit to do to prevent containment cycles after concurrent subtree moves, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=316444

I've done 2) in a fresh local repo within the CDO Explorer. If you try it, don't forget to Disconnect the local repo once after you created and committed the initial model. Otherwise you'll continue with an already filled local revision cache. I found that EMF's DragAndDropCommand.prepareDropOn(line 689) tends to copy the entire children subtree multiple times. The reason is unclear to me. You didn't say how exactly you're moving your subtree. Perhaps not via an EMF UI...



Re: [CDO] Efficiently moving a large containment structure [message #1860276 is a reply to message #1860013] Wed, 26 July 2023 13:08 Go to previous message
Robert Schulk is currently offline Robert SchulkFriend
Messages: 144
Registered: July 2015
Senior Member
Thanks for your answer and tests! In my case, the main performance penalty came from the security manager. That definitely makes sense and probably cannot be prevented.
Previous Topic:Using dynamic templates in Xcore
Next Topic:[CDO] Managing async view invalidation
Goto Forum:
  


Current Time: Thu May 02 06:15:58 GMT 2024

Powered by FUDForum. Page generated in 0.03633 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top