Skip to main content



      Home
Home » Modeling » EMF » [CDO] Efficiently moving a large containment structure
[CDO] Efficiently moving a large containment structure [message #1860009] Mon, 10 July 2023 09:34 Go to next message
Eclipse UserFriend
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 12:24 Go to previous messageGo to next message
Eclipse UserFriend
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 09:08 Go to previous message
Eclipse UserFriend
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: Sun Jul 13 00:07:09 EDT 2025

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

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

Back to the top