On 21.6.13 10:46, Jukka Zitting wrote:
I'd look higher up the stack.
Indeed.
If I do
---
oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java
(date 1371713356000)
+++
oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java
(revision )
@@ -419,8 +419,7 @@
return true; // no differences
} else if (id != null && id.equals(kbase.id)) {
return true; // no differences
- } else if (path.equals(kbase.path)
- && childNodeCount > MAX_CHILD_NODE_NAMES) {
+ } else if (path.equals(kbase.path)) {
// use MK.diff() when there are 'many' child nodes
String jsonDiff =
kernel.diff(kbase.getRevision(), revision, path, 0);
processJsonDiff(jsonDiff, kbase, diff);
These stack traces do not show up any more and there is no more piling
up of observation events. Furthermore total execution time of
benchmark/ObservationTime goes down by a factor of 3!
Any reason we only use the kernel diff for big child node lists?
Michael