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

Significant performance regression using TokuDB tables in mariadb.org builds

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.5.36, 10.0.8
    • Fix Version/s: 5.5.37, 10.0.10
    • Component/s: None
    • Environment:
      Ubuntu 13.10, (2) x Intel Xeon E5540, 48GB, 8 x 10K SAS in RAID10, 256MB Cache, XFS

      Description

      In testing the performance of TokuDB tables using the MariaDB builds (available from mariadb.org) I noticed significant performance regressions. The following is for Sysbench (data > cache, IO bound):
      workload = read/write
      tables = 16
      distribution = uniform
      rows / table = 10 million
      tokudb_cache_size = 8G
      tokudb_directio = 1
      tokudb_read_block_size = 64K
      tokudb_row_format = tokudb_lzma
      performance_schema=off

      Table are bulk-loaded, then ran the test for 64 and 128 client threads, 5 minutes per thread count. Results as follows:

      MariaDB 10.0.8 : source = mariadb.org
      64 threads, 78.0 tps
      128 threads, 95.6 tps

      MariaDB 5.5.36 : source = mariadb.org
      64 threads, 78.4 tps
      128 threads, 95.8 tps

      MariaDB 5.5.30 : source = tokutek.com
      64 threads, 132.3 tps
      128 threads, 161.5 tps

      MySQL 5.5.30 : source = tokutek.com
      64 threads, 134.8 tps
      128 threads, 164.1 tps

      MySQL 5.5.36 : source = tokutek.com
      64 threads, 131.2 tps
      128 threads, 161.4 tps

        Gliffy Diagrams

          Attachments

          1. global-variables.diff.txt
            5 kB
          2. oltp_ro_5.5.30.gif
            oltp_ro_5.5.30.gif
            10 kB
          3. oltp_ro_5.5.35.gif
            oltp_ro_5.5.35.gif
            10 kB
          4. series53.ods
            28 kB
          5. series54.ods
            23 kB
          6. tokudb_oltp.gif
            tokudb_oltp.gif
            14 kB

            Activity

            Hide
            tmcallaghan Tim Callaghan added a comment - - edited

            It appears that the COMPRESSION table create option does not pickup the tokudb_row_format default that is set for the session/global variable.

            Therefore, if the user does not use "COMPRESSION=" in their CREATE TABLE statements they are getting uncompressed, which is the current MariaDB default.

            Show
            tmcallaghan Tim Callaghan added a comment - - edited It appears that the COMPRESSION table create option does not pickup the tokudb_row_format default that is set for the session/global variable. Therefore, if the user does not use "COMPRESSION=" in their CREATE TABLE statements they are getting uncompressed, which is the current MariaDB default.
            Hide
            axel Axel Schwenke added a comment -

            Hi Joel, Tim!

            good catch! How embarrassing that I didn't notice the size difference for the data directories. Note to self: whenever looking at a performance problem with a compressing engine, check table space size first.

            Anyway: Serg has already fixed this in his working tree and it should soon be pushed to the main trees. For 5.5 the compression default will be zlib, for 10.0 the compression default will be taken from a session variable (which in turn is initialized from the global variable)

            Show
            axel Axel Schwenke added a comment - Hi Joel, Tim! good catch! How embarrassing that I didn't notice the size difference for the data directories. Note to self: whenever looking at a performance problem with a compressing engine, check table space size first. Anyway: Serg has already fixed this in his working tree and it should soon be pushed to the main trees. For 5.5 the compression default will be zlib, for 10.0 the compression default will be taken from a session variable (which in turn is initialized from the global variable)
            Hide
            tmcallaghan Tim Callaghan added a comment -

            I modified the KB page at https://mariadb.com/kb/en/tokudb-differences/, noting this behavioral difference.

            Show
            tmcallaghan Tim Callaghan added a comment - I modified the KB page at https://mariadb.com/kb/en/tokudb-differences/ , noting this behavioral difference.
            Hide
            tmcallaghan Tim Callaghan added a comment -

            Thanks for the update Axel, I wish the default could come from the session variable in both but zlib is much better than uncompressed.

            Show
            tmcallaghan Tim Callaghan added a comment - Thanks for the update Axel, I wish the default could come from the session variable in both but zlib is much better than uncompressed.
            Hide
            axel Axel Schwenke added a comment -

            Serg, please close this issue when you see fit.

            Show
            axel Axel Schwenke added a comment - Serg, please close this issue when you see fit.

              People

              • Assignee:
                serg Sergei Golubchik
                Reporter:
                tmcallaghan Tim Callaghan
              • Votes:
                3 Vote for this issue
                Watchers:
                14 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: