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

Michael Stack updated HBASE-23705:
----------------------------------
    Description: 
The HFileContext is present when reading and writing files. It is populated at 
read time using HFile trailer content and file metadata. At write time, we 
create it up front.

Interesting is that though CellComparator is written to the HFile trailer, and 
parse of the Trailer creates an HFileInfo which builds the HFileContext at read 
time, the HFileContext does not expose what CellComparator to use decoding and 
seeking. Around the codebase there are various compensations made for this lack 
with decoders that actually have a decoding context (with a reference to the 
hfilecontext), hard-coding use of the default CellComparator. StoreFileInfo 
will use default if not passed a comparator (even though we'd just read the 
trailer and even though it has reference to filecontext) and HFile does 
similar. What CellComparator to use in a given context is confused.

Let me fix this situation removing ambiguity. It will also fix bugs in parent 
issue where UTs are failing because wrong CellComparator is being used.

  was:
The HFileContext is present when reading and writing files. It is populated at 
read time using HFile trailer content and file metadata. At write time, we 
create it up front.

Interesting is that though CellComparator is written to the HFile trailer, and 
parse of the Trailer creates an HFileInfo which builds the HFileContext at read 
time, the HFileContext does not expose what CellComparator to use decoding and 
seeking. Around the codebase there are various compensations made for this lack 
with decoders that actually have a decoding context (with a reference to the 
hfilecontext), hard-coding use of the default CellComparator. StoreFileInfo 
will use default if not passed a comparator (even though we'd just read the 
trailer) and HFile itself is similar.

Let me fix this situation removing ambiguity. It will also fix bugs in parent 
issue where UTs are failing because wrong CellComparator is being used.


> Add CellComparator to HFileContext
> ----------------------------------
>
>                 Key: HBASE-23705
>                 URL: https://issues.apache.org/jira/browse/HBASE-23705
>             Project: HBase
>          Issue Type: Sub-task
>          Components: io
>            Reporter: Michael Stack
>            Assignee: Michael Stack
>            Priority: Major
>             Fix For: 3.0.0, 2.3.0
>
>
> The HFileContext is present when reading and writing files. It is populated 
> at read time using HFile trailer content and file metadata. At write time, we 
> create it up front.
> Interesting is that though CellComparator is written to the HFile trailer, 
> and parse of the Trailer creates an HFileInfo which builds the HFileContext 
> at read time, the HFileContext does not expose what CellComparator to use 
> decoding and seeking. Around the codebase there are various compensations 
> made for this lack with decoders that actually have a decoding context (with 
> a reference to the hfilecontext), hard-coding use of the default 
> CellComparator. StoreFileInfo will use default if not passed a comparator 
> (even though we'd just read the trailer and even though it has reference to 
> filecontext) and HFile does similar. What CellComparator to use in a given 
> context is confused.
> Let me fix this situation removing ambiguity. It will also fix bugs in parent 
> issue where UTs are failing because wrong CellComparator is being used.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to