Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-11144

Filter to support scanning multiple row key ranges

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.1.0, 0.98.21, 2.0.0
    • Filters
    • None
    • Reviewed
    • Hide
      MultiRowRangeFilter is a filter to support scanning multiple row key ranges. If the number of the ranges is small, using multiple scans can also do the same thing and can work well. But when the number of ranges are quite big (e.g. millions), use the MultiRowRangeFilter will be nice. In this filter, the ranges will be sorted and merged, so users do not have to take care of ranges are not continuous. And if users are using something like rest, thrift or pig to access the data the filter might be the practical solution.
      Show
      MultiRowRangeFilter is a filter to support scanning multiple row key ranges. If the number of the ranges is small, using multiple scans can also do the same thing and can work well. But when the number of ranges are quite big (e.g. millions), use the MultiRowRangeFilter will be nice. In this filter, the ranges will be sorted and merged, so users do not have to take care of ranges are not continuous. And if users are using something like rest, thrift or pig to access the data the filter might be the practical solution.

    Description

      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.

      Attachments

        1. MultiRowRangeFilter.patch
          72 kB
          Jiajia Li
        2. MultiRowRangeFilter2.patch
          73 kB
          Jiajia Li
        3. MultiRowRangeFilter3.patch
          73 kB
          Jiajia Li
        4. HBASE_11144_4.patch
          75 kB
          Jiajia Li
        5. HBASE_11144_V5.patch
          76 kB
          Jiajia Li
        6. HBASE_11144_V6.patch
          75 kB
          Jiajia Li
        7. HBASE_11144_V7.patch
          82 kB
          Jiajia Li
        8. hbase_11144_V8.patch
          87 kB
          Jiajia Li
        9. HBASE_11144_V9.patch
          87 kB
          Jiajia Li
        10. HBASE_11144_V10.patch
          87 kB
          Jiajia Li
        11. HBASE_11144_V11.patch
          87 kB
          Jiajia Li
        12. HBASE_11144_V12.patch
          87 kB
          Jiajia Li
        13. HBASE_11144_V13.patch
          87 kB
          Jiajia Li
        14. HBASE_11144_V14.patch
          87 kB
          Jiajia Li
        15. HBASE_11144_V15.patch
          102 kB
          Jiajia Li
        16. HBASE_11144_V16.patch
          103 kB
          Jiajia Li
        17. HBASE_11144_V17.patch
          103 kB
          Jiajia Li
        18. HBASE_11144_V18.patch
          103 kB
          Jiajia Li

        Activity

          People

            jiajia Jiajia Li
            jiajia Jiajia Li
            Votes:
            1 Vote for this issue
            Watchers:
            14 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: