Hello, I've found one reason, why the performance drops (versioned nodes, Oracle bundled db persistence manager). The reason is the node management in the InternalVersionManagerBase getParentNode().
Lets say, Jackrabbit wants to store a versioned node with the uuid 3da05dc3-fb90-4f65-ab21-ca97342ee589. It first looks, if there is a node beginning with the first two letters 3d. If the node does not exist, it is being created. This loops totally 3 times. The problem is the create of new child nodes. Maybe in our example the second level node a0 does not exist. What Jackrabbit does is adding the a0 node to the 3d node and storing the 3d node and all its children (NodeStateEx store(NodeState state)). If you have 100 children, then Oracle needs some time to read all these children just to figure out, ups 99 of these already exists. So, the performance can go down from time to time, until the whole structure is created. A better way in this case would be to store only that special child node and the parent. Mit freundlichen Grüßen i. A. Robert Seidel, Software Infrastructure, Senior Professional -- AEB GmbH, www.aeb.de D-70597 Stuttgart, Julius-Hölder-Str. 39 Tel. +49-711-72842-262, Fax -333, [email protected] --- AEB Gesellschaft zur Entwicklung von Branchen-Software mbH Stammsitz Stuttgart Registergericht: Amtsgericht Stuttgart, HRB 84 31 Gerichtsstand Stuttgart Geschäftsführer: Peter Michael Belz, Jochen Günzel
