[ https://issues.apache.org/jira/browse/HBASE-23705?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17018624#comment-17018624 ]
Michael Stack commented on HBASE-23705: --------------------------------------- This depends on this one. UTs are broken because encoder is using wrong CellComparator. This issue fixes the wrong CellComparator problem. > 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)