hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-16176) Bug fixes/improvements on HBASE-15650 Remove TimeRangeTracker as point of contention when many threads reading a StoreFile
Date Thu, 09 Nov 2017 01:16:00 GMT

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

Andrew Purtell updated HBASE-16176:
-----------------------------------
    Fix Version/s:     (was: 1.4.0)

> Bug fixes/improvements on HBASE-15650 Remove TimeRangeTracker as point of contention
when many threads reading a StoreFile
> --------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-16176
>                 URL: https://issues.apache.org/jira/browse/HBASE-16176
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Performance
>    Affects Versions: 1.3.0, 0.98.20
>            Reporter: stack
>            Assignee: stack
>             Fix For: 2.0.0, 1.3.0
>
>         Attachments: HBASE-16176.branch-1.3.001.patch, HBASE-16176.branch-1.3.002.patch,
HBASE-16176.branch-1.3.002.patch, HBASE-16176.branch-1.3.003.patch, HBASE-16176.master.001.patch
>
>
> Debugging the parent issue, came up with some improvements on old HBASE-15650 "Remove
TimeRangeTracker as point of contention when many threads reading a StoreFile". Lets get them
in. Here are the changes:
> {code}
>   6      Change HFile Writer constructor so we pass in the TimeRangeTracker, if one,
>   7      on construction rather than set later (the flag and reference were not
>   8      volatile so could have made for issues in concurrent case) 2. Make sure the
>   9      construction of a TimeRange from a TimeRangeTracer on open of an HFile Reader
>  10      never makes a bad minimum value, one that would preclude us reading any
>  11      values from a file (add a log and set min to 0)
>  12     M hbase-common/src/main/java/org/apache/hadoop/hbase/io/TimeRange.java
>  13      Call through to next constructor (if minStamp was 0, we'd skip setting allTime=true)
>  14     M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
>  15      Add constructor override that takes a TimeRangeTracker (set when flushing but
>  16      not when compacting)
>  17     M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
>  18      Add override creating an HFile in tmp that takes a TimeRangeTracker
>  19     M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
>  20      Add override for HFile Writer that takes a TimeRangeTracker
>  21      Take it on construction instead of having it passed by a setter later (flags
>  22      and reference set by the setter were not volatile... could have been prob
>  23      in concurrent case)
>  24     M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/TimeRangeTracker.java
>  25      Log WARN if bad initial TimeRange value (and then 'fix' it)
>  26     M hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestTimeRangeTracker.java
>  27      A few tests to prove serialization works as expected and that we'll get a bad
min if
>  28      not constructed properly.
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message