When I delete a node with a larger subgraph ( < 50.000 nodes) in Jackrabbit-Oak it takes about ~45 Minutes to perform the action.
My questions are, is there anything to respect regarding deletion performance and why does it take so long?
Here is what I do:
Node nodeToBeDeleted = session.getNodeByIdentifier(session, uuid);
session.removeItem(nodeToBeDeleted.getPath());
session.save();
And also tried this one which seamed to be a bit slower:
Node nodeToBeDeleted = session.getNodeByIdentifier(session, uuid);
nodeToBeDeleted.remove();
session.save();
What i can observ in the logs, is a reindexiation in that proces which takes at least a considerable amount of time
IndexUpdate$IndexUpdateRootState$CountingCallback - /oak:index/nodetype => Indexed 10000 nodes in 21,42 min ...
Additional response from oak in the log:
DocumentNodeStore$4 - Pushing journal entry at r17624a6d743-0-1 as number of changes (146510) have reached 100000
I use Oak 1.6.20 connected to MongoDB 4.0 running on an i7 U6600 (2 Cores/4 threads, 2,8 Ghz base) with 16 GB of ram. Write operations are much fast btw. The nodes I try to delete where created in about 7 Minutes over rest with all the overhead which usually apply.