|[EMF][CDO] Scalability and the recommended use of ItemProviderAdapters when using CDO [message #685742]
||Sat, 18 June 2011 23:44
| Josh M
Registered: July 2009
I am experimenting with migrating from the default EMF implementation into CDO. Most of our desire for making this change is to take advantage of the scalability CDO offers with respect to the memory usage of our application (http://thegordian.blogspot.com/2008/11/how-scalable-are-my-models.html).|
So far, the migration has gone well, but when running our app, I am still noticing that the memory usage grows. Tracing this down, one of the components that seems to be holding onto objects is the 'targets' collection of the org.eclipse.emf.edit.provider.ItemProviderAdapter class. Although this is expected (we are using the Singleton Provider type, and based on the docs it states "one adapter object for every type of object in the model (recommended when possible)"), I am concerned this does not lend itself well to the scalability we are seeking. There is the choice of a Stateful Provider type, but I don't have experience with using this yet to understand what the impacts of such a change would be.
Specifically, our application can generate many of the same types of objects per second, and can be executed for many hours at a time (obviously generating hundreds of thousand objects or more). These objects are added to the model through use of AddCommands created via the AdapterFactoryEditingDomain, and persisted. Our hope is that they could be GC'd at that point. This does not seem to be happening based on the reference still held by the corresponding ItemProviderAdapter mentioned before.
I was hoping there might be some thought's from the CDO community as to the best way of handling this kind of situation. Any help or guidance you might have would be greatly appreciated. Thanks!
[Updated on: Sat, 18 June 2011 23:46]
Report message to a moderator
Powered by FUDForum
. Page generated in 0.02413 seconds