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

Reply via email to