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

Point‑select throughput regression in 12.0.1; performance drop aligns with multi‑event trigger changes

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Minor
    • Resolution: Unresolved
    • 12.0.1
    • None
    • Events
    • None
    • Hide
      Operating System
      OS: Linux
      OS Version: AlmaLinux 9.7 (Moss Jungle Cat)
      OS Kernel: 5.14.0-611.35.1.el9_7.x86_64

      Hardware
      CPU: 13th Gen Intel(R) Core(TM) i5-13500
      CPU COUNT: 20
      SOCKET COUNT: 1
      RAM: 62.33 GB
      Show
      Operating System OS: Linux OS Version: AlmaLinux 9.7 (Moss Jungle Cat) OS Kernel: 5.14.0-611.35.1.el9_7.x86_64 Hardware CPU: 13th Gen Intel(R) Core(TM) i5-13500 CPU COUNT: 20 SOCKET COUNT: 1 RAM: 62.33 GB

    Description

      Point‑select throughput decreases by approximately 2.4 percent across the 12.0 → 12.0.1 commit window. The regression is clear, repeatable, and appears at the boundary where multi‑event trigger support is introduced. A surface‑level review indicates that the trigger metadata changes may increase table‑open overhead, which point‑read workloads are sensitive to. This does not establish root cause, but the timing and nature of the patch make it a reasonable area for further investigation.

      Affected Versions

      12.0.1

      Later 12.x and 13.x releases may also be affected; analysis ongoing.

      Observed Behavior

      Throughput drops from approximately 381k TPS to approximately 371k TPS.

      Regression is consistent across repeated runs.

      The first step‑down occurs immediately after the multi‑event trigger patch.

      Expected Behavior

      No performance regression between 12.0.0 and 12.0.1 on a point‑read workload unless justified by architectural changes.

      Commit‑Level TPS Boundary (12.0 → 12.0.1)

      1e00b9ec2a13 — Fix typos

      GOOD - 379076.29 TPS - f11504af51535bb2f5035 MDEV‑20034: weak SYS_REFCURSOR
      173b16f3bca6 — MDEV‑11341 STR_TO_DATE
      GOOD - 381076.65 TPS - 86ec20189a baf0b07150a0d73c6d6e0f2a3f4780 MDEV‑14091: password‑protected SSL key
      BAD - 371878.68 TPS - ecb7c9b692811f96cfa54add61012a701c47523d MDEV‑10164: multi‑event triggers
      BAD - 370236.69 TPS - ddfebd48f58678ff31427f7f7d971981e2d098ec MDEV‑23538: rename mariadb.pc

      Technical Notes (surface‑level review)

      • The multi‑event trigger patch is large and modifies how trigger metadata is stored and iterated.
      • A single trigger may now be represented multiple times internally (one per event), with additional linked‑list pointers and event‑bitmask checks.
      • Point‑select does not fire triggers, but it does open tables and load trigger metadata.
      • Any increase in metadata processing during table‑open can affect point‑read workloads.
      • Point‑select is highly sensitive to table‑open overhead, so even small changes can be visible in TPS.
      • This does not establish causality; it identifies a plausible area for deeper review.

      Benchmark Configuration (sysbench‑lua)
      Test Suite: sysbench-lua
      Test Case: Point Select
      oltp_lua_script: oltp_point_select.lua
      number_of_rows: 1000000
      number_of_tables: 8
      thread_count: 128
      run_duration_seconds: 400
      oltp_skip_trx: on
      range_size: 100
      forced_shutdown: 1
      forced_shutdown_sec: 0
      socket_count: 1

      Configuration
      disable-log-bin
      performance_schema=OFF
      sync_binlog=0
      general_log=OFF
      slow_query_log=OFF
      default_storage_engine=InnoDB
      default_authentication_plugin=mysql_native_password
      tls_version=TLSv1.2,TLSv1.3
      max_connections=500
      open_files_limit=65535
      table_open_cache=4000
      thread_cache_size=128
      thread_handling=one-thread-per-connection
      thread_pool_size=0

      # InnoDB
      innodb_buffer_pool_size=30G
      innodb_flush_log_at_trx_commit=1
      innodb_doublewrite=1
      innodb_flush_method=O_DIRECT
      innodb_flush_neighbors=0
      innodb_log_file_size=8G
      innodb_undo_tablespaces=2
      innodb_undo_log_truncate=ON
      innodb_io_capacity=2000
      innodb_io_capacity_max=4000
      innodb_read_io_threads=8
      innodb_write_io_threads=8
      innodb_file_per_table=1
      innodb_default_row_format=dynamic
      innodb_compression_algorithm=none
      innodb_compression_level=0

      # sync
      sync_master_info=0
      sync_relay_log=0
      sync_relay_log_info=0

      aria_pagecache_buffer_size=128M
      aria_sort_buffer_size=128M

      character_set_server=utf8mb4
      collation_server=utf8mb4_general_ci

      Attachments

        Activity

          People

            Unassigned Unassigned
            jeb Jonathan Jeb Miller
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Git Integration

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