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
(v6.3.4#6332)

Mime
View raw message