Am using EMF for an RCP Application . The model is quite complex and I have big xml files and hence loading of models takes more time . Would it be a good option to use Eclipse CDO Model Repository along with EMF to store the models in database thereby decrease the loading time.
Does the performance increases with the usage of CDO Model Repository ? Those who already used CDO provide your valuable feedback.
CDO may increase the performance but all depends on the usage and the data access patterns you have in your application.
CDO supports lazy loading which may increase the responsiveness, especially when the requests use small blocks of data.
In may also decrease the performance if you attempt to load large blocks of data and be also aware that you are introducing an additional layer between your application and the data source, therefore, potentially increasing the latency.
In fact, if you have already an application based on an EMF in-memory model, you're likely to experience a performance decrease if you simply move to CDO without any adaptation in your application code, to take more advantage of the CDO and the fact that the data is being loaded lazily.
The arguments to choose to use CDO should be more related with scalability, concurrency and transaction support. From the problem you describe you could have scalability issues with big models. But if this is not the case, then CDO won't help. The default generated EMF code is highly optimized to access in-memory data, it would be difficult to increase performance when you simply introduce an additional layer like CDO.
Remember that EMF also support lazy loading of Resources without using CDO (using the default generation pattern). You need to define smaller resources and have cross-references between the resources (proxies).