[ 
https://issues.apache.org/jira/browse/HBASE-21922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16774737#comment-16774737
 ] 

Guangxu Cheng commented on HBASE-21922:
---------------------------------------

This problem does exist in individual scenarios:(, which is related to the 
choice of delimiter. If the ASCII of the delimiter is smaller than all 
characters in front of the delimiter, then there will be no similar problem.

> BloomContext#sanityCheck may failed when use ROWPREFIX_DELIMITED bloom filter
> -----------------------------------------------------------------------------
>
>                 Key: HBASE-21922
>                 URL: https://issues.apache.org/jira/browse/HBASE-21922
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Guanghao Zhang
>            Assignee: Guanghao Zhang
>            Priority: Major
>         Attachments: HBASE-21922.master.001.patch
>
>
> Assume we use '5' as the delimiter, there are rowkeys: row1 is smaller than 
> row2
> {code:java}
> row1: 12345xxx
> row2: 1235xxxx{code}
> When use ROWPREFIX_DELIMITED bloom filter, the rowkey write to bloom filter 
> are
> {code:java}
> row1's key for bloom filter: 1234
> row2's key for bloom fitler: 123{code}
> The row1's key for bloom filter is bigger than row2. Then 
> BloomContext#sanityCheck will failed.
> {code:java}
> private void sanityCheck(Cell cell) throws IOException {
>   if (this.getLastCell() != null) {
>     LOG.debug("Current cell " + cell + ", prevCell = " + this.getLastCell());
>     if (comparator.compare(cell, this.getLastCell()) <= 0) {
>       throw new IOException("Added a key not lexically larger than" + " 
> previous. Current cell = "
>           + cell + ", prevCell = " + this.getLastCell());
>     }
>   }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to