Skip to content
  • Olav Sandstaa's avatar
    ec728451
    Fix for Bug#14185642 - WL#6082: FAILURES ON TRUNK · ec728451
    Olav Sandstaa authored
    Test failures occurring when running the tests with the non-default 4K
    page size for InnoDB. The tests fail due to changes in the "disk sweep
    cost model" for reading data from disk introduced in WL#6082. The disk
    sweep cost is influenced by the number of blocks used for storing the
    table which can be different when using 4K page size compared to 16K
    page size.
    
    opt_trace.bugs_no_prot_all:
    ===========================
    
    Cause: this test fails due to the cost estimate in the optimizer trace
           is slightly different due to change in "file size" when using
           4K blocks instead of 16K blocks.
    
    Fix: This is an optimizer trace test. Fixes this problem by only running
         it with the default 16K block size for InnoDB.
    
    innodb_explain_json_non_select_all, innodb_explain_non_select_none,
    innodb_explain_json_non_select_none, nnodb_explain_non_select_all:
    ==================================================================
    
    Cause: These tests fail due to change in execution plan between 16K
    and 4K InnoDB page sizes. For 16 page size the failing query is done
    as a table scan while for 4K page size it is done as an index-merge.
    Before WL#6082 it would use a table scan in both cases. The reason for
    the change to do index-merge for the 4K case is that the size of the
    table is smaller when using 4K pages compared to using 16K pages and
    thus the cost for doing index merge is now lower.
    
    Fix: We need to have the same query plan for both 4K and 16K pages
    (since the test has the same result file). For the same tests when run
    with MyISAM the queries are done using index-merge. So instead of
    "forcing" the 4K InnoDB test to run as a "table scan", we change the
    default/16K InnoDB test to run using index-merge by adding more
    records to the table. This increases the cost of doing a full table
    scan and makes index-merge cheaper than a table scan in both 16K and
    4K test case.
    ec728451
    Fix for Bug#14185642 - WL#6082: FAILURES ON TRUNK
    Olav Sandstaa authored
    Test failures occurring when running the tests with the non-default 4K
    page size for InnoDB. The tests fail due to changes in the "disk sweep
    cost model" for reading data from disk introduced in WL#6082. The disk
    sweep cost is influenced by the number of blocks used for storing the
    table which can be different when using 4K page size compared to 16K
    page size.
    
    opt_trace.bugs_no_prot_all:
    ===========================
    
    Cause: this test fails due to the cost estimate in the optimizer trace
           is slightly different due to change in "file size" when using
           4K blocks instead of 16K blocks.
    
    Fix: This is an optimizer trace test. Fixes this problem by only running
         it with the default 16K block size for InnoDB.
    
    innodb_explain_json_non_select_all, innodb_explain_non_select_none,
    innodb_explain_json_non_select_none, nnodb_explain_non_select_all:
    ==================================================================
    
    Cause: These tests fail due to change in execution plan between 16K
    and 4K InnoDB page sizes. For 16 page size the failing query is done
    as a table scan while for 4K page size it is done as an index-merge.
    Before WL#6082 it would use a table scan in both cases. The reason for
    the change to do index-merge for the 4K case is that the size of the
    table is smaller when using 4K pages compared to using 16K pages and
    thus the cost for doing index merge is now lower.
    
    Fix: We need to have the same query plan for both 4K and 16K pages
    (since the test has the same result file). For the same tests when run
    with MyISAM the queries are done using index-merge. So instead of
    "forcing" the 4K InnoDB test to run as a "table scan", we change the
    default/16K InnoDB test to run using index-merge by adding more
    records to the table. This increases the cost of doing a full table
    scan and makes index-merge cheaper than a table scan in both 16K and
    4K test case.
Loading