[
https://issues.apache.org/jira/browse/OAK-4522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15399412#comment-15399412
]
Thomas Mueller commented on OAK-4522:
-------------------------------------
One problem of the current behavior, to throw an exception "System is busy" if
the queue is full: if the observation listeners save multiple changes. In this
case an exception could be thrown, even thought regular commits are stopped.
That makes the behavior of the commit rate limiter somewhat random (sometimes
commits are delayed, and sometimes an exception is thrown), based on pure luck.
I would rather keep behavior deterministic by default, and pause until the
queue is smaller. I understand it might be desirable to throw an exception for
"some" commits, but I don't think we currently have a way to decide which ones
are OK to reject and which ones are not. Therefore, I think it makes sense to
disable the exception "System is busy" by default.
> Improve CommitRateLimiter to optionally block some commits
> ----------------------------------------------------------
>
> Key: OAK-4522
> URL: https://issues.apache.org/jira/browse/OAK-4522
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: jcr
> Reporter: Thomas Mueller
> Assignee: Thomas Mueller
> Labels: observation
> Fix For: 1.6
>
>
> The CommitRateLimiter of OAK-1659 can delay commits, but doesn't currently
> block them, and delays even those commits that are part of handling events.
> Because of that, the queue can still get full, and possibly delaying commits
> while handling events can make the situation even worse.
> In Jackrabbit 2.x, we had a similar feature: JCR-2402. Also related is
> JCR-2746.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)