HBase
  1. HBase
  2. HBASE-6870

HTable#coprocessorExec always scan the whole table

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 0.94.1, 0.95.0, 0.95.2
    • Fix Version/s: 0.98.0, 0.94.8, 0.95.1
    • Component/s: Coprocessors
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      In current logic, HTable#coprocessorExec always scans the entire META table, loading it into memory and then filters the keys to return only those that fall in specified range. The version after the patch only scans the portions of meta that are in the specified key range, and returns them. Put simply – before we did a load-all-then-filter; afterwards we only-scan-what-is-needed.

      The former has low efficiency and greatly impacts the Regionserver carrying .META. when there are many coprocessorExec requests.

      1. HBASE-6870.patch
        6 kB
        chunhui shen
      2. HBASE-6870v2.patch
        5 kB
        chunhui shen
      3. HBASE-6870v3.patch
        6 kB
        chunhui shen
      4. HBASE-6870-testPerformance.patch
        3 kB
        chunhui shen
      5. 6870-v4.txt
        7 kB
        Ted Yu
      6. hbase-6870v5.patch
        7 kB
        chunhui shen
      7. hbase-6870v6.patch
        4 kB
        chunhui shen
      8. hbase-0.94-6870v6.patch
        4 kB
        chunhui shen
      9. hbase-0.95-6870v6.patch
        4 kB
        chunhui shen

        Issue Links

          Activity

          chunhui shen created issue -
          chunhui shen made changes -
          Field Original Value New Value
          Attachment HBASE-6870.patch [ 12546248 ]
          chunhui shen made changes -
          Attachment HBASE-6870v2.patch [ 12546249 ]
          chunhui shen made changes -
          Attachment HBASE-6870v3.patch [ 12546250 ]
          chunhui shen made changes -
          Attachment HBASE-6870-testPerformance.patch [ 12546439 ]
          Gary Helmling made changes -
          Link This issue is duplicated by HBASE-5492 [ HBASE-5492 ]
          Nicolas Liochon made changes -
          Link This issue is duplicated by HBASE-8136 [ HBASE-8136 ]
          Nicolas Liochon made changes -
          Affects Version/s 0.95.0 [ 12324094 ]
          Affects Version/s 0.96.0 [ 12320040 ]
          Nicolas Liochon made changes -
          Priority Major [ 3 ] Critical [ 2 ]
          Nicolas Liochon made changes -
          Link This issue is required by HBASE-5843 [ HBASE-5843 ]
          Ted Yu made changes -
          Fix Version/s 0.95.1 [ 12324288 ]
          Fix Version/s 0.98.0 [ 12323143 ]
          Ted Yu made changes -
          Attachment 6870-v4.txt [ 12577014 ]
          Ted Yu made changes -
          Status Open [ 1 ] Patch Available [ 10002 ]
          chunhui shen made changes -
          Attachment hbase-6870v5.patch [ 12577422 ]
          chunhui shen made changes -
          Attachment hbase-6870v6.patch [ 12579669 ]
          chunhui shen made changes -
          Status Patch Available [ 10002 ] Resolved [ 5 ]
          Hadoop Flags Reviewed [ 10343 ]
          Fix Version/s 0.94.7 [ 12324039 ]
          Resolution Fixed [ 1 ]
          chunhui shen made changes -
          Attachment hbase-0.94-6870v6.patch [ 12579772 ]
          Attachment hbase-0.95-6870v6.patch [ 12579773 ]
          Ted Yu made changes -
          Fix Version/s 0.94.8 [ 12324145 ]
          Fix Version/s 0.94.7 [ 12324039 ]
          Lars Hofhansl made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Jonathan Hsieh made changes -
          Description In current logic, HTable#coprocessorExec always scan the whole table, its efficiency is low and will affect the Regionserver carrying .META. under large coprocessorExec requests In current logic, HTable#coprocessorExec always scans the entire META table, loading it into memory and then filters the keys to return only those that fall in specified range. The version after the patch only scans the portions of meta that are in the specified key range, and returns them. Put simply -- before we did a load-all-then-filter; afterwards we only-scan-what-is-needed.

          The former has low efficiency, and greatly impacts the Regionserver carrying .META. when there are many coprocessorExec requests.

          Jonathan Hsieh made changes -
          Description In current logic, HTable#coprocessorExec always scans the entire META table, loading it into memory and then filters the keys to return only those that fall in specified range. The version after the patch only scans the portions of meta that are in the specified key range, and returns them. Put simply -- before we did a load-all-then-filter; afterwards we only-scan-what-is-needed.

          The former has low efficiency, and greatly impacts the Regionserver carrying .META. when there are many coprocessorExec requests.

          In current logic, HTable#coprocessorExec always scans the entire META table, loading it into memory and then filters the keys to return only those that fall in specified range. The version after the patch only scans the portions of meta that are in the specified key range, and returns them. Put simply -- before we did a load-all-then-filter; afterwards we only-scan-what-is-needed.

          The former has low efficiency and greatly impacts the Regionserver carrying .META. when there are many coprocessorExec requests.

            People

            • Assignee:
              chunhui shen
              Reporter:
              chunhui shen
            • Votes:
              0 Vote for this issue
              Watchers:
              15 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development