You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by lars hofhansl <la...@apache.org> on 2013/02/26 03:08:45 UTC

Filter.isFamilyEssential in 0.94.5

- If you do not implement custom filter you can ignore the rest of this message.
- If you your custom filters extend FilterBase you can ignore the rest of this message.

In 0.94.5 we added a new feature to Filters, which allows certain filters to avoid loading entire column families if they are not necessary to evaluation the filter (and the filter indicates that the row/kv should be filtered).

In order to do that we added a new method to Filter: isFamilyEssential(bytep[]). It was pointed out that anybody who implemented the Filter interface directly instead of extending FilterBase in prior versions of HBase now has make changes to the implementing class to add an implementation of isFamilyEssential.

After some discussion (see HBASE-5416) we decided to remove that method from Filter and push it instead into FilterBase (even though I was skeptical about that).

TL;DR: Custom filters should extend FilterBase. If you implement custom filter and makes use of isFamilyEssential for HBase 0.94.5 and do so by implementing Filter directly you will have to change your code in 0.94.6 and later and extend FilterBase instead to get this functionality.
Just a heads up, it is quite unlikely that anybody will actually run into this.

Your 0.94 release manager.


-- Lars


Re: Filter.isFamilyEssential in 0.94.5

Posted by Ted Yu <yu...@gmail.com>.
Thanks Lars for this notice.

The discussion on HBASE-5416 is very long. If you want to focus on
discussion pertinent to this notice, you can start from here:

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

In HBASE-7920, Move isFamilyEssential(byte[] name) out of Filter interface
in 0.94, the revision was made.

Cheers

On Mon, Feb 25, 2013 at 6:08 PM, lars hofhansl <la...@apache.org> wrote:

> - If you do not implement custom filter you can ignore the rest of this
> message.
> - If you your custom filters extend FilterBase you can ignore the rest of
> this message.
>
> In 0.94.5 we added a new feature to Filters, which allows certain filters
> to avoid loading entire column families if they are not necessary to
> evaluation the filter (and the filter indicates that the row/kv should be
> filtered).
>
> In order to do that we added a new method to Filter:
> isFamilyEssential(bytep[]). It was pointed out that anybody who implemented
> the Filter interface directly instead of extending FilterBase in prior
> versions of HBase now has make changes to the implementing class to add an
> implementation of isFamilyEssential.
>
> After some discussion (see HBASE-5416) we decided to remove that method
> from Filter and push it instead into FilterBase (even though I was
> skeptical about that).
>
> TL;DR: Custom filters should extend FilterBase. If you implement custom
> filter and makes use of isFamilyEssential for HBase 0.94.5 and do so by
> implementing Filter directly you will have to change your code in 0.94.6
> and later and extend FilterBase instead to get this functionality.
> Just a heads up, it is quite unlikely that anybody will actually run into
> this.
>
> Your 0.94 release manager.
>
>
> -- Lars
>
>