Issue with chunking and rollback #99
Replies: 3 comments 2 replies
-
|
I would like to add that we have been having sporadic issues with Proxy element that we have never been able to pin down. I am starting to wonder if it would not be the same issue, where a first chunk is loaded (here 300), unchunked is set to true and then at some point we try to address some other references and since unchunked is true, it fails to load them. IMHO there seems to be a value missing to know how much has been unchunked in the revision feature or unchunked to be at the feature level. |
Beta Was this translation helpful? Give feedback.
-
|
Hi Alain, Apologies for my late reply. And you won't like this reply ;-( Chunking (collection loading policy) is a feature that I wish was never added because it's so much in dispute with many other common features of CDO, especially those that rely on object comparison, such as rollback. It's so cross-cutting, I'm not able to analyze, fix, and support all that. Do you think the use of Chunking is inevitable for your application? |
Beta Was this translation helpful? Give feedback.
-
|
Some functions, such as comparing objects / lists, just need all the list elements (no proxy elements). when they're executed you end up loading all those missing list elements anyway. Have you already played with org.eclipse.emf.cdo.util.CDOBalancedTree ? It can help organize the storage of large amounts of objects by putting them in a balanced tree structure. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I have a situation where we have a rollback and the list compare is failing since all proxies are not resolved:
The issue stems from the fact that resolveAllElementProxies doesn't guarantee that all proxies are resolved.
The code has:
but isUnchecked can be true if only a single chunk has been resolved.
Earlier before the rollback happens, we have a write with the following stacktrace (ignore lines as we have mods):
so the issue is that in ensureChunks we have:
which gets called with a chunkSize of 300 and here there thousands of other entries are not resolved.
In resolveAllProxies it runs with:
but the 0,0 causes it to quickly set minReached & maxReached to true since the first 300 are resolved.
Am I missing something or is there really an issue ?
Thanks
Alain
Beta Was this translation helpful? Give feedback.
All reactions