jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dürig (JIRA) <j...@apache.org>
Subject [jira] [Commented] (OAK-4122) Replace the commit semaphore in the segment node store with a scheduler
Date Mon, 11 Apr 2016 22:05:25 GMT

    [ https://issues.apache.org/jira/browse/OAK-4122?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15236069#comment-15236069

Michael Dürig commented on OAK-4122:

Suggested changes to the initial API draft: 
* Added Javadoc
* Renamed {{CommitStream}} to {{CommitBacklog}}
* {{Commit.apply()}} takes {{SegmentStore}} instead of {{NodeState}} as its argument. This
enables us to pull the optimistic / pessimistic retry logic currently in {{FileStore}} up
to the scheduler but at the same time leave the semantics of the {{SegmentStore.setHead()}}
method unchanged. 

See https://github.com/francescomari/jackrabbit-oak/pull/7/commits/6c612b210d7b23550b22d364d145182c24c9beb9

> Replace the commit semaphore in the segment node store with a scheduler
> -----------------------------------------------------------------------
>                 Key: OAK-4122
>                 URL: https://issues.apache.org/jira/browse/OAK-4122
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: segmentmk
>            Reporter: Michael Dürig
>            Assignee: Francesco Mari
>              Labels: performance, scalability, throughput
>             Fix For: 1.6
> {{SegmentNodeStore}} currently uses a semaphore to coordinate concurrent commits thus
relying on the scheduling algorithm of that implementation and ultimately of the JVM for in
what order commits are processed. 
> I think it would be beneficial to replace that semaphore with an explicit queue of pending
commit. This would allow us to implement a proper scheduler optimising for e.g. minimal system
load, maximal throughput or minimal latency etc. A scheduler could e.g. give precedence to
big commits and order commits along the order of its base revisions, which would decrease
the amount of work to be done in rebasing. 

This message was sent by Atlassian JIRA

View raw message