David Wayne Birdsall created TRAFODION-2645:
-----------------------------------------------

             Summary: MDAM costing overestimates I/O cost
                 Key: TRAFODION-2645
                 URL: https://issues.apache.org/jira/browse/TRAFODION-2645
             Project: Apache Trafodion
          Issue Type: Bug
          Components: sql-cmp
    Affects Versions: 2.2-incubating
         Environment: All
            Reporter: David Wayne Birdsall
            Assignee: David Wayne Birdsall


The method MDAMCostWA::compute (optimizer/ScanOptimizer.cpp) has logic to 
calculate the total cost of an MDAM plan and compare it to the cost of a single 
subset plan. In the case of a Trafodion table, the cost logic for MDAM cost has 
an error. It is adding the total number of probes (totalRqsts) to the number of 
seeks (totalSeeks) in order to calculate I/O costs.

TotalSeeks models direct access disk seeks. These happen at the block level and 
are an I/O cost.

TotalRqsts models the number of probes, which is a CPU cost. A probe is a 
direct access within a block that has already been read into memory. This is a 
vastly smaller unit of cost than an I/O operation.

Note that TotalRqsts is already modeled as a message cost since it is added to 
TotalRows.

The effect of the bug is to vastly penalize MDAM plans having large numbers of 
probes. This will show up the most on the largest tables.

The fix is simply not to add totalRqsts to totalSeeks. However, in making this 
fix, it is likely that other MDAM-related parameters will need tuning. So this 
change needs to be done carefully.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to