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

Jonathan Gray updated HBASE-1615:
---------------------------------

    Attachment: HBASE-1615-v3.patch

The patch didn't get any prettier.

Issue is that there is a special HFileScanner inside of HalfHFileReader.

This patch breaks that into an actual class (rather than added on 
construction).  And since it's a separate class, you now pass in the 
HalfHFileReader, and it sets a local top/splitKey.

Also adds HFile.Reader.Scanner instantiation based on a passed in Reader.  So 
now we can have an instantiated Scanner from HFile.Reader.Scanner than takes 
our subclassed CompactionReader (so that we can call our own cacheBlock 
method).  All other methods are passed along to the delegate (in this case, the 
HalfHFileReader).  But then the HalfHFileScanner goes atop the HFileScanner 
(which has our CompactionReader as the Reader, passing along to 
HalfHFileReader).

Yeah i think i repeated myself there.  Anyways, it ain't pretty but it seems to 
work.

> HBASE-1597 introduced a bug when compacting after a split
> ---------------------------------------------------------
>
>                 Key: HBASE-1615
>                 URL: https://issues.apache.org/jira/browse/HBASE-1615
>             Project: Hadoop HBase
>          Issue Type: Bug
>            Reporter: Jonathan Gray
>            Assignee: stack
>             Fix For: 0.20.0
>
>         Attachments: 1615-v2.patch, 1615-v3.patch, HBASE-1615-v4.patch, 
> hfile.patch
>
>
> The way HBASE-1597 instantiated the CompactionReader ignored whether the 
> Reader it came from was a half reader or not.
> Need to reimplement CompactionReader.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to