Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-4552

Testing for MDEV-4345 (sampling probably selective predicates)

Details

    • Task
    • Status: Closed (View Workflow)
    • Minor
    • Resolution: Fixed
    • N/A
    • Tests
    • None

    Description

      Development task: MDEV-4345
      LP tree: lp:maria/10.0

      New variable/option:
      optimizer_selectivity_sampling_limit (default 100)

      + Controls number of record samples to check condition
      + selectivity
       
      +  ulong check_rows=
      +    min(thd->variables.optimizer_selectivity_sampling_limit,
      +        (ulong) (table_records * SELECTIVITY_SAMPLING_SHARE));
      +  if (cond && check_rows > SELECTIVITY_SAMPLING_THRESHOLD &&
      +      thd->variables.optimizer_use_condition_selectivity > 4)
      +#define SELECTIVITY_SAMPLING_SHARE 0.10
      +#define SELECTIVITY_SAMPLING_LIMIT 5000
        
       
      +/* check this number of rows (default value) */
      +#define SELECTIVITY_SAMPLING_LIMIT 5000
      +/* but no more then this part of table (10%) */
      +#define SELECTIVITY_SAMPLING_SHARE 0.10
      +/* do not check if we are going check less then this number of records */
      +#define SELECTIVITY_SAMPLING_THRESHOLD 10
      +       "5 - additionally use selectivity of certain non-range predicates "
      +       "calculated on record samples",

      Attachments

        Issue Links

          Activity

            elenst Elena Stepanova added a comment - - edited

            Ran a set of comparison tests on 10.0 revno 3749. Server parameters:

                    --mysqld1=--use_stat_tables=PREFERABLY
                    --mysqld1='--optimizer_use_condition_selectivity=5 --mysqld1=--histogram_size=100 --mysqld1=--histogram_type=DOUBLE_PREC_HB',
                    --mysqld1='--optimizer_use_condition_selectivity=5 --mysqld1=--histogram_size=50 --mysqld1=--histogram_type=SINGLE_PREC_HB'

            (the baseline is the same server but without the options listed above).

            Numerous tests failed with assertion failures similar to MDEV-4428, MDEV-4429 (they all look similar until one is fixed and others still fail).
            A few tests failed with known unrelated bugs.
            It's going to be hard to continue the tests until the family of assertion `join->best_read < double(...) failures is fixed, but they're currently waiting for their turn in the bug queue.

            elenst Elena Stepanova added a comment - - edited Ran a set of comparison tests on 10.0 revno 3749. Server parameters: --mysqld1=--use_stat_tables=PREFERABLY --mysqld1='--optimizer_use_condition_selectivity=5 --mysqld1=--histogram_size=100 --mysqld1=--histogram_type=DOUBLE_PREC_HB', --mysqld1='--optimizer_use_condition_selectivity=5 --mysqld1=--histogram_size=50 --mysqld1=--histogram_type=SINGLE_PREC_HB' (the baseline is the same server but without the options listed above). Numerous tests failed with assertion failures similar to MDEV-4428 , MDEV-4429 (they all look similar until one is fixed and others still fail). A few tests failed with known unrelated bugs. It's going to be hard to continue the tests until the family of assertion `join->best_read < double(...) failures is fixed, but they're currently waiting for their turn in the bug queue.

            Further testing has been and will be performed as a part of regression tests.

            elenst Elena Stepanova added a comment - Further testing has been and will be performed as a part of regression tests.

            People

              elenst Elena Stepanova
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.