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

Li Jiajia commented on HBASE-11144:
-----------------------------------

The test is done using MultiRowRangeFilter and the FilterList with a list of 
row key Filters on a 7-node cluster, each node uses 32 CPUs and 90GB memory.
There’re 4 rounds of the test and each round scan for 100 row key ranges in the 
table with 100million records, and get the count of results is 153437898. 
Following is the test results and the average time is computed without the max 
and min values.

                                              1              2               3  
              4    Avg
FilterList                              8693479 8641336 8644194 8647838 
8646016(ms)
MultiRowRangeFilter     1264502 1263921 1262744 1252947 1263333(ms)

Speed up to 6.84 times.


> Filter to support scan multiple row key ranges
> ----------------------------------------------
>
>                 Key: HBASE-11144
>                 URL: https://issues.apache.org/jira/browse/HBASE-11144
>             Project: HBase
>          Issue Type: Improvement
>          Components: Filters
>            Reporter: Li Jiajia
>         Attachments: HBASE_11144_4.patch, MultiRowRangeFilter.patch, 
> MultiRowRangeFilter2.patch, MultiRowRangeFilter3.patch
>
>
> HBase is quite efficient when scanning only one small row key range. If user 
> needs to specify multiple row key ranges in one scan, the typical solutions 
> are: 1. through FilterList which is a list of row key Filters, 2. using the 
> SQL layer over HBase to join with two table, such as hive, phoenix etc. 
> However, both solutions are inefficient. Both of them can’t utilize the range 
> info to perform fast forwarding during scan which is quite time consuming. If 
> the number of ranges are quite big (e.g. millions), join is a proper solution 
> though it is slow. However, there are cases that user wants to specify a 
> small number of ranges to scan (e.g. <1000 ranges). Both solutions can’t 
> provide satisfactory performance in such case. 
> We provide this filter (MultiRowRangeFilter) to support such use case (scan 
> multiple row key ranges), which can construct the row key ranges from user 
> specified list and perform fast-forwarding during scan. Thus, the scan will 
> be quite efficient. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to