[
https://issues.apache.org/jira/browse/HBASE-21922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16774680#comment-16774680
]
Duo Zhang commented on HBASE-21922:
-----------------------------------
Maybe not since we just use the algorithm to get a key, and then use it to
split... For the case here the result may not be what user expects but no logic
error.
But for bloom filter this is will be a big problem.
So I'm +1 on removing the ROWPREFIX_DELMITED bloom filter type. As it requires
the row key to have some specific patterns, but until now we have no way to
confirm the row key pattern before actually write it and then scanning the
whole row keys, which means we can not reject invalid row keys at the
beginning. This is dangerous I think...
> 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)