Uploaded image for project: 'Blazegraph (by SYSTAP)'
  1. Blazegraph (by SYSTAP)
  2. BLZG-881

Fail join groups containing a required join with a zero cardinality count (optimization)

    Details

    • Type: New Feature
    • Status: Open
    • Resolution: Unresolved
    • Affects Version/s: BIGDATA_RELEASE_1_3_0
    • Fix Version/s: None
    • Component/s: Query Plan Generator
    • Labels:
      None

      Description

      We obtain key range cardinality estimates for the access paths when analyzing a query. If any of those estimates is a zero (for a required join), then we should just replace fail the entire join group since no solutions can survive.

      This should probably be done as an ASTOptimizer.

      When using transactional isolation, the estimated cardinality for an access path will also count deleted tuples. This is a side-effect of (a) marking deleted tuples in the index using a delete marker until the tuples are purged; and (b) estimating the key-range of the access path based on the #of tuples that lie between the fromKey and the toKey. This can result in a non-zero estimate when there are no solutions in the data.

      Therefore, we should also fail the join group if any access path can be proven to be empty in the data. This can occur with the RTO when it attempts to sample an access path. If it fully materializes the AP and finds no solutions, then the AP is provably empty. If this is done for a required join, then there will be no solutions for that join group.

      See BLZG-265 (RTO).

        Activity

        There are no comments yet on this issue.

          People

          • Assignee:
            mikepersonick mikepersonick
            Reporter:
            bryanthompson bryanthompson
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated: