hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Yang (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-17112) Prevent setting timestamp of delta operations being same as previous value's
Date Thu, 17 Nov 2016 06:54:58 GMT

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

Phil Yang updated HBASE-17112:
    Release Note: 
Before this issue, two concurrent Increments/Appends done in same millisecond or RS's clock
going back will result in two results have same TS, which is not friendly to versioning and
will get wrong result in slave cluster if the replication is disordered.
After this issue, the result of Increment/Append will always have an incremental TS. There
is no any inconsistent in replication for these operations. But there is a rare case that
if there is a Delete in same millisecond, the later result can not be masked by this Delete.
This can be fixed after we have new semantics that previous Delete will never mask later Put
even its timestamp is higher.

> Prevent setting timestamp of delta operations being same as previous value's
> ----------------------------------------------------------------------------
>                 Key: HBASE-17112
>                 URL: https://issues.apache.org/jira/browse/HBASE-17112
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.1.7, 0.98.23, 1.2.4
>            Reporter: Phil Yang
>            Assignee: Phil Yang
>         Attachments: HBASE-17112-branch-1-v1.patch, HBASE-17112-branch-1.1-v1.patch,
HBASE-17112-v1.patch, HBASE-17112-v2.patch
> In delta operations, Increment and Append. We will read current value first and then
write the new whole result into WAL as the type of Put with current timestamp. If the previous
ts is larger than current ts, we will use the previous ts.
> If we have two Puts with same TS, we will ignore the Put with lower sequence id. It is
not friendly with versioning. And for replication we will drop sequence id  while writing
to peer cluster so in the slave we don't know what the order they are being written. If the
pushing is disordered, the result will be wrong.
> We can set the new ts to previous+1 if the previous is not less than now.

This message was sent by Atlassian JIRA

View raw message