-
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.
Olav Sandstaa authoredTest 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