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

stack updated HBASE-15650:
--------------------------
    Attachment: 15650.patch

Refactor so we use the immutable, unsynchronized TimeRange when doing
time-based checks at read time rather than use the heavily synchronized
TimeRangeTracker; let TimeRangeTracker be for write-time only.

While in here, changed the Segment stuff so that when an immutable
segment, it uses TimeRange rather than TimeRangeTracker too.

{code}
M hbase-common/src/main/java/org/apache/hadoop/hbase/io/TimeRange.java
  Make allTime final.
  Add a includesTimeRange method copied from TimeRangeTracker.

M 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/TimeRangeTracker.java
  Change name of a few methods so they match TimeRange methods that do
  same thing.
  (getTimeRangeTracker, getTimeRange, toTimeRange) add utility methods

M 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ImmutableSegment.java
  Change ImmutableSegment so it uses a TimeRange rather than
  TimeRangeTracker.. it is read-only. Redo shouldSeek, getMinTimestamp,
  updateMetaInfo, and getTimeRangeTracker so we use TimeRange-based
  implementations instead of TimeRangeTracker implementations.

M 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MutableSegment.java
  Implement shouldSeek, getMinTimestamp, updateMetaInfo, and
  getTimeRangeTracker using TimeRangeTracker.

M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Segment.java
  Make methods that were using TimeRangeTracker abstract and instead
  have the implementations do these methods how they want either using
  TimeRangeTracker when a mutable segment or TimeRange when an immutable
  segment.

M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
  Change Reader to use TimeRange-based checks instead of
  TimeRangeTracker.
{code}

> Remove TimeRangeTracker as point of contention when many threads reading a 
> StoreFile
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-15650
>                 URL: https://issues.apache.org/jira/browse/HBASE-15650
>             Project: HBase
>          Issue Type: Bug
>          Components: Performance
>    Affects Versions: 2.0.0
>            Reporter: stack
>            Assignee: stack
>             Fix For: 2.0.0
>
>         Attachments: 15650.patch
>
>
> HBASE-12148 is about "Remove TimeRangeTracker as point of contention when 
> many threads writing a Store". It is also a point of contention when reading.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to