You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Carsten Ziegeler (JIRA)" <ji...@apache.org> on 2017/04/18 22:54:41 UTC
[jira] [Commented] (SLING-6782) Sling Job implementation should
avoid unnecessary writes to the repository
[ https://issues.apache.org/jira/browse/SLING-6782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15973673#comment-15973673 ]
Carsten Ziegeler commented on SLING-6782:
-----------------------------------------
Good catch. However, I think the patch is removing too much: the getOrCreateResource is currently using auto commit to avoid problems in a cluster if the path to the resource needs to be created as well (too nodes concurrently adding the same path). So I think this needs some more changes to ResourceHelper: auto commit for the parent path part, no auto commit for the resource creation.
At the same time we can remove getOrCreateResourceInternal as this is a copy of Sling's API ResourceUtil method
> Sling Job implementation should avoid unnecessary writes to the repository
> --------------------------------------------------------------------------
>
> Key: SLING-6782
> URL: https://issues.apache.org/jira/browse/SLING-6782
> Project: Sling
> Issue Type: Improvement
> Components: Event
> Affects Versions: Event 4.2.2
> Reporter: Jörg Hoh
> Attachments: SLING-6782-jobs-commit-to-often.patch
>
>
> I found in a number of occurences in the Sling Event code this pattern:
> {code}
> ResourceHelper.getOrCreateResource(resolver, newPath, props);
> resolver.delete(jobResource);
> resolver.commit();
> {code}
> and the getOrCreateResource is internally doing a commit on the resolver (autoCommit = true). So in the end there are 2 commits while only a single commit would be sufficient.
> Removing these "double" commits could avoid a few write operations on the repository.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)