Details
-
Improvement
-
Status: Resolved
-
Resolution: Done
-
Helium
-
None
-
None
-
Operating System: All
Platform: All
Description
Tracing with the prototype codecs points to a new bottleneck. We spend 58% of the time in ResolveDataChangeEventTask.resolveNodeContainerReplaced() (and recursive invocations) – total of 2M of them.
There are some immediate optimizations we can perform, but we need to also think about how can we limit the number of invocations/nesting. One possibility here is to take into account whether there are any listeners on that particular node and what their scope (and the scopes of parent node's listeners) are.
Another possibility is to take the just-committed transaction as a guide, so we understand what were the potential nodes changed.