You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by doublequote <al...@gmail.com> on 2016/05/20 08:38:36 UTC

Jackrabbit Oak move performance problem

Hello,

I'm using Oak and I'm facing a performance problem when I try to move a node
which has many children (~3000) in a treee structure with 5 levels. It's
very slow, the JVM memory is grows to much, etc.

The piece of code :

Node node = session.getNodeByIdentifier(nodeId);
Node targetNode = session.getNodeByIdentifier(targetId);

session.move(node.getPath(), targetNode.getPath() + "/" + node.getName());
session.save();

Am I doing something wrong ? Is there an other way to do that ?

Thanks
Alexandre




--
View this message in context: http://jackrabbit.510166.n4.nabble.com/Jackrabbit-Oak-move-performance-problem-tp4664073.html
Sent from the Jackrabbit - Dev mailing list archive at Nabble.com.

Re: Jackrabbit Oak move performance problem

Posted by doublequote <al...@gmail.com>.
Thank you Thomas.

I made more tests, and I saw that when renaming or moving a node, a lot of
new lines were added in the mongo DB.
Actually, I have added the mixin mix:versionable by default on every nodes.
So, renaming creates a new version maybe for each child node (ex: 1
nt:folder renaming with around 200 children creates around 3000 new nodes in
the DB).
I'll try removing this kind of mixin and make some new tests.

Do you think I'm on a good way ?



--
View this message in context: http://jackrabbit.510166.n4.nabble.com/Jackrabbit-Oak-move-performance-problem-tp4664073p4664075.html
Sent from the Jackrabbit - Dev mailing list archive at Nabble.com.

Re: Jackrabbit Oak move performance problem

Posted by Thomas Mueller <mu...@adobe.com>.
Hi,

With Oak, moving nodes is now much slower unfortunately, at least with
some storage engines (for example the document store / MongoDB). It is
basically the same as adding new nodes and deleting old nodes. I'm afraid
there is no easy solution for this problem.

Regards,
Thomas

On 20/05/16 10:38, "doublequote" <al...@gmail.com> wrote:

>Hello,
>
>I'm using Oak and I'm facing a performance problem when I try to move a
>node
>which has many children (~3000) in a treee structure with 5 levels. It's
>very slow, the JVM memory is grows to much, etc.
>
>The piece of code :
>
>Node node = session.getNodeByIdentifier(nodeId);
>Node targetNode = session.getNodeByIdentifier(targetId);
>
>session.move(node.getPath(), targetNode.getPath() + "/" + node.getName());
>session.save();
>
>Am I doing something wrong ? Is there an other way to do that ?
>
>Thanks
>Alexandre
>
>
>
>
>--
>View this message in context:
>http://jackrabbit.510166.n4.nabble.com/Jackrabbit-Oak-move-performance-pro
>blem-tp4664073.html
>Sent from the Jackrabbit - Dev mailing list archive at Nabble.com.