[
https://issues.apache.org/jira/browse/OAK-585?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13566328#comment-13566328
]
Mete Atamel commented on OAK-585:
---------------------------------
That's a good point but there's a slight difference here. Exponential backoff
is used for failures outside the normal operation of a system and immediately
retrying makes the failure worse. So, exponential backoff is useful for failed
or not-so-often-happening cases. On the other hand, a CommitCommand failure due
to a concurrent commit is almost always expected in normal operation of MongoMK
and retrying right away is exactly what's needed. I fear that if we apply
exponential backoff to commits, we'd be delaying commits even when there's no
load on the system (just concurrent commits) and that's not good.
> Reduce cost of commit retry
> ---------------------------
>
> Key: OAK-585
> URL: https://issues.apache.org/jira/browse/OAK-585
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: mongomk
> Affects Versions: 0.6
> Reporter: Marcel Reutegger
> Attachments: OAK-585-1&2.patch, OAK-585-1&2.patch, OAK-585-1.patch,
> OAK-585-2.patch, OAK-585-3.patch
>
>
> MongoMK currently has a retry mechanism when it commits changes. Its main
> purpose is to make sure the headRevId in the sync collection is updated
> consistently and concurrent conflicting commits are detected. Under higher
> concurrency it may happen that commits are retried multiple times, even when
> commits are non-conflicting. In this case its only about consistently
> updating the headRevId. When this happens the commit will get a new revision
> and the nodes of the commit are written again with the new revision, even
> though no changes to the nodes are needed. Only the revision needed an update.
> The cost of a retry should be reduced in this case. At least a commit retry
> should not leave garbage in the nodes and commits collections.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira