Hi Domenic,
On 30/03/16 14:34, "Domenic DiTano" wrote:
>"In contrast to Jackrabbit 2, a move of a large subtree is an expensive
>operation in Oak"
>So should I avoid doing a move of a large number of items using Oak? If
>we
>are using Oak then should we avoid operations with a large number of items
>in general?
In general it is fine to have a large change set with Oak. With
Oak you can even have change sets that do not fit into the heap.
> As a FYI - there are other benefits for us to move to Oak, but
>our application uses executes JCR operations with a large number of items
>quite often. I am worried about the performance.
>
>The move method is pretty simple - should I be doing it differently?
>
>public static long moveNodes(Session session, Node node, String
>newNodeName)
>throws Exception{
> long start = System.currentTimeMillis();
> session.move(node.getPath(), "/"+newNodeName);
> session.save();
> long end = System.currentTimeMillis();
> return end-start;
>}
No, this is fine. As mentioned earlier, with Oak a move
operation is not cheap and is basically implemented as
copy to new location and delete at the old location.
A cheap move operation was considered a non-goal when
Oak was designed:
https://wiki.apache.org/jackrabbit/Goals%20and%20non%20goals%20for%20Jackra
bbit%203
Regards
Marcel