[ 
https://issues.apache.org/jira/browse/HBASE-25975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kyle Purtell updated HBASE-25975:
----------------------------------------
    Description: 
Use a row commit sequencer in HRegion to ensure that only the operations that 
mutate disjoint sets of rows are able to commit within the same clock tick. 
This maintains the invariant that more than one mutation to a given row will 
never be committed in the same clock tick.

Callers will first acquire row locks for the row(s) the pending mutation will 
mutate. Then they will use RowCommitSequencer.getRowSequence to ensure that the 
set of rows about to be mutated do not overlap with those for any other pending 
mutations in the current clock tick. If an overlap is identified, 
getRowSequence will yield and loop until there is no longer an overlap and the 
caller's pending mutation can succeed.

> Row commit sequencer
> --------------------
>
>                 Key: HBASE-25975
>                 URL: https://issues.apache.org/jira/browse/HBASE-25975
>             Project: HBase
>          Issue Type: Sub-task
>          Components: regionserver
>            Reporter: Andrew Kyle Purtell
>            Assignee: Andrew Kyle Purtell
>            Priority: Major
>             Fix For: 3.0.0-alpha-1, 2.5.0
>
>
> Use a row commit sequencer in HRegion to ensure that only the operations that 
> mutate disjoint sets of rows are able to commit within the same clock tick. 
> This maintains the invariant that more than one mutation to a given row will 
> never be committed in the same clock tick.
> Callers will first acquire row locks for the row(s) the pending mutation will 
> mutate. Then they will use RowCommitSequencer.getRowSequence to ensure that 
> the set of rows about to be mutated do not overlap with those for any other 
> pending mutations in the current clock tick. If an overlap is identified, 
> getRowSequence will yield and loop until there is no longer an overlap and 
> the caller's pending mutation can succeed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to