Join Optimization: Create a plan stability test for joins

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Optimization
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Similar to the existing plan_stability test for CBR, we will be creating a test that presevers the current join orders for a set of pipelines.

      The pipelines will be generated using a TPC-H jstestfuzz grammar and will be further narrowed down using filtering and clustering to obtain an optimal test.

      For each pipeline, we will record:

      • the current join order and indexes used for each collection, as a compact, single-line representation
      • the current execution effort in terms of index keys and documents added, as well as potentially more counters that capture the work expended for the intermediate join operations themselves (such as the sum of all intermediate inputs or some variation thereof)
      • a compact representation of the result set that allows catching not only correctness regressions that result in a different number of rows being returned but also as well as those that result in malformed documents (missing keys, null values, empty arrays, etc.). This can be an order-independent checksum or some other concise representation.

            Assignee:
            Philip Stoev
            Reporter:
            Philip Stoev
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: