You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Alex Baranau (JIRA)" <ji...@apache.org> on 2012/08/03 23:57:02 UTC

[jira] [Created] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Alex Baranau created HBASE-6509:
-----------------------------------

             Summary: Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
                 Key: HBASE-6509
                 URL: https://issues.apache.org/jira/browse/HBASE-6509
             Project: HBase
          Issue Type: New Feature
          Components: filters
            Reporter: Alex Baranau
            Assignee: Alex Baranau
            Priority: Minor


Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".

This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.

This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.

In many cases this can work as secondary-indexing alternative.

Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Zhihong Ted Yu (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13428460#comment-13428460 ] 

Zhihong Ted Yu commented on HBASE-6509:
---------------------------------------

Please categorize TestFuzzyRowFilter as small test.
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Alex Baranau (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Baranau updated HBASE-6509:
--------------------------------

    Attachment: HBASE-6509_2.patch

Ted, thank you for review. Fixed nits, updated diff.
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch, HBASE-6509_2.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Hadoop QA (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13430756#comment-13430756 ] 

Hadoop QA commented on HBASE-6509:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12539731/HBASE-6509_3.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    +1 hadoop2.0.  The patch compiles against the hadoop 2.0 profile.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    -1 javac.  The applied patch generated 5 javac compiler warnings (more than the trunk's current 4 warnings).

    -1 findbugs.  The patch appears to introduce 9 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.coprocessor.TestClassLoading
                  org.apache.hadoop.hbase.replication.TestReplication
                  org.apache.hadoop.hbase.master.TestSplitLogManager

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/2529//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2529//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2529//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2529//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop1-compat.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2529//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2529//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/2529//console

This message is automatically generated.
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch, HBASE-6509_2.patch, HBASE-6509_3.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"

Posted by "Alex Baranau (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13437055#comment-13437055 ] 

Alex Baranau commented on HBASE-6509:
-------------------------------------

Answered on user list. Subj: "Can I specify the range inside of fuzzy rule in FuzzyRowFilter?". Thank you for a very good question, Anil!
                
> Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>             Fix For: 0.96.0
>
>         Attachments: HBASE-6509_1.patch, HBASE-6509_2.patch, HBASE-6509_3.patch, HBASE-6509.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"

Posted by "Alex Baranau (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Baranau updated HBASE-6509:
--------------------------------

    Resolution: Fixed
        Status: Resolved  (was: Patch Available)

patch committed, marking as resolved.

Thanx Ted, Jon!
                
> Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>             Fix For: 0.96.0
>
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch, HBASE-6509_2.patch, HBASE-6509_3.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Alex Baranau (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Baranau updated HBASE-6509:
--------------------------------

    Status: Patch Available  (was: Open)
    
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Hadoop QA (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13428539#comment-13428539 ] 

Hadoop QA commented on HBASE-6509:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12539130/HBASE-6509_1.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    +1 hadoop2.0.  The patch compiles against the hadoop 2.0 profile.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    -1 javac.  The applied patch generated 5 javac compiler warnings (more than the trunk's current 4 warnings).

    -1 findbugs.  The patch appears to introduce 10 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.regionserver.TestSplitTransactionOnCluster

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/2501//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2501//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2501//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop1-compat.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2501//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2501//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2501//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/2501//console

This message is automatically generated.
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"

Posted by "Zhihong Ted Yu (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Zhihong Ted Yu updated HBASE-6509:
----------------------------------

    Fix Version/s: 0.96.0
     Hadoop Flags: Reviewed
          Summary: Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"  (was: Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b")
    
> Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>             Fix For: 0.96.0
>
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch, HBASE-6509_2.patch, HBASE-6509_3.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Jonathan Hsieh (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13429269#comment-13429269 ] 

Jonathan Hsieh commented on HBASE-6509:
---------------------------------------

Ted, interesting.  

I wonder if this kind of optimization is more generally applicable or it is worth pushing down into the regex comparator.  

My concern is that this seems a bit special purpose.  I wonder if there is a jira already filed for custom filter plugins/coprocessors. 
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"

Posted by "ramkrishna.s.vasudevan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13445120#comment-13445120 ] 

ramkrishna.s.vasudevan commented on HBASE-6509:
-----------------------------------------------

The blog on Fuzzyrowfilter was very nice.
                
> Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>             Fix For: 0.96.0
>
>         Attachments: HBASE-6509_1.patch, HBASE-6509_2.patch, HBASE-6509_3.patch, HBASE-6509.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"

Posted by "Anil Gupta (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13436901#comment-13436901 ] 

Anil Gupta commented on HBASE-6509:
-----------------------------------

Hi Alex,

I have a question related to this filter. I have a similar filtering requirement which will be an extension to FuzzyFilterRow.
Suppose, i have the following structure of rowkeys: userid_actionid, where userid is of 6 digit and then actionid is 5 digit. I would like to get all the rows with actionid between 00200 to 00350. With current FuzzyRowFilter i can search for all the rows a particular actionid. Instead of searching for a particular actionid i would like to search for a range of actionid. 

Does this use case sounds like an extension to current FuzzyRowFilter? Can i run this kind of filter on HBase0.92 without doing any significant update to the cluster. If i develop this kind of filter then what is needed to run it on all the RS's?

Thanks,
Anil 
                
> Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>             Fix For: 0.96.0
>
>         Attachments: HBASE-6509_1.patch, HBASE-6509_2.patch, HBASE-6509_3.patch, HBASE-6509.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Alex Baranau (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Baranau updated HBASE-6509:
--------------------------------

    Attachment:     (was: HBASE-6509.patch)
    
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Alex Baranau (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13429284#comment-13429284 ] 

Alex Baranau commented on HBASE-6509:
-------------------------------------

yes, the point is to utilize fast-forwarding navigation between rows.

Re more general optimization for regex comparator: I don't think it is doable in general case. I.e. only for very specific cases of regexp we can do fast-forwarding. If we do it for some, that it can be misleading for users, and again, the functionality might be overlooked.
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13431194#comment-13431194 ] 

Hudson commented on HBASE-6509:
-------------------------------

Integrated in HBase-TRUNK #3203 (See [https://builds.apache.org/job/HBase-TRUNK/3203/])
    HBASE-6509 Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b" (Alex Baranau) (Revision 1370788)

     Result = FAILURE
tedyu : 
Files : 
* /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java
* /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/protobuf/generated/FilterProtos.java
* /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/protobuf/generated/HBaseProtos.java
* /hbase/trunk/hbase-server/src/main/protobuf/Filter.proto
* /hbase/trunk/hbase-server/src/main/protobuf/hbase.proto
* /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFuzzyRowFilter.java

                
> Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>             Fix For: 0.96.0
>
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch, HBASE-6509_2.patch, HBASE-6509_3.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Jonathan Hsieh (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13430786#comment-13430786 ] 

Jonathan Hsieh commented on HBASE-6509:
---------------------------------------

I'm +0.

Just some follow on if this is to be committed -- please file a jira to document in book and also, consider filing a jira for making these custom filters some sort of plugin in the future.
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch, HBASE-6509_2.patch, HBASE-6509_3.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Hadoop QA (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13428432#comment-13428432 ] 

Hadoop QA commented on HBASE-6509:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12539104/HBASE-6509.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    +1 hadoop2.0.  The patch compiles against the hadoop 2.0 profile.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    -1 javac.  The applied patch generated 5 javac compiler warnings (more than the trunk's current 4 warnings).

    -1 findbugs.  The patch appears to introduce 10 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.TestCheckTestClasses

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/2500//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2500//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2500//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop1-compat.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2500//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2500//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2500//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/2500//console

This message is automatically generated.
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"

Posted by "stack (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13436976#comment-13436976 ] 

stack commented on HBASE-6509:
------------------------------

@Anil Suggest you ask up on the user list.
                
> Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>             Fix For: 0.96.0
>
>         Attachments: HBASE-6509_1.patch, HBASE-6509_2.patch, HBASE-6509_3.patch, HBASE-6509.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"

Posted by "Zhihong Ted Yu (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13431135#comment-13431135 ] 

Zhihong Ted Yu commented on HBASE-6509:
---------------------------------------

Integrated to trunk.

Thanks for the patch, Alex.

Thanks for the comments, Jon.
                
> Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>             Fix For: 0.96.0
>
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch, HBASE-6509_2.patch, HBASE-6509_3.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Jonathan Hsieh (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13429236#comment-13429236 ] 

Jonathan Hsieh commented on HBASE-6509:
---------------------------------------

Hey Alex,

Is there a reason why this is necessary given that it seems tha you can use a RegexStringComparator on a RowFilter?

{code}
#example from title
Filter f = new RowFilter(CompareOp.EQUALS, new RegexStringComparator("..alex.b") )

# example in javadoc
Filter f = new RowFilter(CompareOp.EQUALS, new RegexStringComparator("...._99_...._01") )

{code}


                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Hadoop QA (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13429664#comment-13429664 ] 

Hadoop QA commented on HBASE-6509:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12539386/HBASE-6509_2.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    +1 hadoop2.0.  The patch compiles against the hadoop 2.0 profile.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    -1 javac.  The applied patch generated 5 javac compiler warnings (more than the trunk's current 4 warnings).

    -1 findbugs.  The patch appears to introduce 9 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
     

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/2524//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2524//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2524//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2524//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop1-compat.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2524//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/2524//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/2524//console

This message is automatically generated.
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch, HBASE-6509_2.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Alex Baranau (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Baranau updated HBASE-6509:
--------------------------------

    Attachment: HBASE-6509_3.patch

Added filter to Filter.proto (aslo added BytesBytesPair type in hbase.proto) & generated java code from it.

Updated diff on review board (see link to review request in first comments)
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch, HBASE-6509_2.patch, HBASE-6509_3.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Alex Baranau (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Baranau updated HBASE-6509:
--------------------------------

    Attachment: HBASE-6509_1.patch

Added SmallTests annotation to test.

Thanx, Ted!
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Zhihong Ted Yu (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13429243#comment-13429243 ] 

Zhihong Ted Yu commented on HBASE-6509:
---------------------------------------

Alex's patch utilizes ReturnCode.SEEK_NEXT_USING_HINT in certain condition.

Looking at RowFilter, I don't see this optimization.
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Alex Baranau (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Baranau updated HBASE-6509:
--------------------------------

    Attachment: HBASE-6509.patch

Sorry - my IDE inserted bad "license header" in patch. Fixed
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Zhihong Ted Yu (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13430824#comment-13430824 ] 

Zhihong Ted Yu commented on HBASE-6509:
---------------------------------------

I created HBASE-6527 for Filter plugin.
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch, HBASE-6509_2.patch, HBASE-6509_3.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Alex Baranau (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Baranau updated HBASE-6509:
--------------------------------

    Attachment: HBASE-6509.patch

Attached patch. Also created review request at https://reviews.apache.org/r/6354/. More unit-tests to come (see review).

Please let me know your thoughts about API. I feel like setting mask (0s and 1s only currently) via byte[] is might be overkill. Not sure if we'll need more states for values. Using byte[] just looked handy to me from the client prospective at the time I implemented this initially (some time ago)
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-6509) Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"

Posted by "Zhihong Ted Yu (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13430768#comment-13430768 ] 

Zhihong Ted Yu commented on HBASE-6509:
---------------------------------------

I ran the 3 failed tests locally and they passed.
{code}
  532  mt -Dtest=TestClassLoading#testClassLoadingFromLibDirInJar 
  533  mt -Dtest=TestSplitLogManager#testMultipleResubmits 
  534  mt -Dtest=TestReplication#queueFailover 
{code}
Placement of new Filter in Filter.proto looks good.

@Jon:
Do you have further comments ?
                
> Implement fast-forwarding FuzzyRowFilter to allow filter rows e.g. by "???alex?b"
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-6509
>                 URL: https://issues.apache.org/jira/browse/HBASE-6509
>             Project: HBase
>          Issue Type: New Feature
>          Components: filters
>            Reporter: Alex Baranau
>            Assignee: Alex Baranau
>            Priority: Minor
>         Attachments: HBASE-6509.patch, HBASE-6509_1.patch, HBASE-6509_2.patch, HBASE-6509_3.patch
>
>
> Implement fuzzy row key filter to allow fetching records e.g. by this criteria: "???alex?b".
> This seems to be very useful as an alternative to select records by row keys by specifying their part which is not prefix part. Due to fast-forwarding nature of the filter in many situations this helps to avoid heavy full-table scans.
> This is especially effective when you have composite row key and (some of) its parts has fixed length. E.g. with the key of format userId_actionId_time, given that userId and actionId length is fixed, one can select user actions of specific type using fuzzy row key by specifying mask "????_myaction". Given fast-forwarding nature of filter, this will usually work much faster than doing whole table scan with any of the existing server-side filters.
> In many cases this can work as secondary-indexing alternative.
> Many times users implement it as a custom filter and many times they just don' know this is possible. Let's add it to the common codebase.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira