[
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.