Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-1598 Encode column names to save space and improve performance
  3. PHOENIX-3667

Optimize BooleanExpressionFilter and ColumnProjectionFilter for tables with encoded columns

    Details

    • Type: Sub-task
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None

      Description

      The client side of Phoenix determines the subclass of BooleanExpressionFilter we use based on how many column families and column qualifiers are being referenced. The idea is to minimize the lookup cost during filter evaluation. For encoded columns, instead of using a Map or Set, we can create a few new subclasses of BooleanExpressionFilter that use an array instead. No need for any lookups or equality checks - just fill in the position based on the column qualifier value instead. Since filters are applied on every row between the start/stop key, this will improve performance quite a bit.

        Attachments

        1. PHOENIX-3667_wip.patch
          30 kB
          Samarth Jain
        2. PHOENIX-3667.patch
          44 kB
          Samarth Jain
        3. WhereClause.jpg
          87 kB
          Samarth Jain
        4. PHOENIX-3667_v2.patch
          44 kB
          Samarth Jain

          Activity

            People

            • Assignee:
              samarthjain Samarth Jain
              Reporter:
              jamestaylor James Taylor
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: