Bug 492510 - [CDO][Performance] UMLItemPropertyDescriptor.getChoiceOfValues potentially loads complete CDO Repo
Summary: [CDO][Performance] UMLItemPropertyDescriptor.getChoiceOfValues potentially lo...
Status: UNCONFIRMED
Alias: None
Product: Papyrus
Classification: Modeling
Component: Collaboration (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows NT
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-04-27 01:56 EDT by Thorsten Schlathölter CLA
Modified: 2019-02-18 15:32 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thorsten Schlathölter CLA 2016-04-27 01:56:24 EDT
The implementation of the above descriptor loads the complete CDO repo. Actually the implementation is the default implementation of ItemPropertyDescriptor which recursively follows all references of a given object. Via CDOResource -> folder -> CDOResourceFolder -> folder -> CDOResourceFolder it climbs up to the Root CDOResource and then descends into all CDOResources of the repository.

This makes the use of Papyrus together with CDO very problematic for large scale repositories.
Comment 1 Eike Stepper CLA 2016-04-27 02:04:30 EDT
I suspect the same or a similar performance/memory problem may arise when loading large XML-formatted models from slow servers or file shares. I wonder if there's a reasonably smaller scope (than a complete resource set), which would still reach all model elements. I.e. is it reasonable to assume that a model (di, uml, notation, and maybe a few others) represents a complete scope for reference endpoints?
Comment 2 Christian Damus CLA 2016-04-27 08:44:23 EDT
Did you mean to file this bug in the UML2 project?  The item providers in question are supplied by EMF and/or UML2.
Comment 3 Thorsten Schlathölter CLA 2016-04-28 00:57:03 EDT
I have thought this over a little bit. This is not a specific UML problem. It is caused by a CDO feature namely: CDOResourceNode.folder. It will happen with any model that makes use of the standard way to resolve these choice values.
It's just Papyrus with CDO which just popped up the issue.

So the question is: can this issue be solved in general? And if so where would that be? For sure it makes the use of standard EMF ItemPropertyDescriptor critical for any use of CDO.