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