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

Performance Exploration: Server Options Impacting OLTP Workloads

    XMLWordPrintable

Details

    • Task
    • Status: Open (View Workflow)
    • Minor
    • Resolution: Unresolved
    • None
    • None

    Description

      This ticket tracks the set of MariaDB server options to be tested for performance impact across OLTP workloads (HammerDB TPROC-C).

      The goal is to establish a baseline and measure overhead introduced by durability, replication, charset, flushing, and concurrency-related settings.

      All tests will be compared to a baseline using:

      • MariaDB default/recommended options
      • crash-safe configuration
      • log-bin=0
      • innodb_flush_log_at_trx_commit=1
      • large buffer pool so all data fits in memory

      Test workload:

      • Suite: HammerDB TPROC-C
      • Load: Cached
      • Threads: 10, 50, 100, 400
      • Warmup: 4 minutes
      • Duration: 15 minutes
      • Iterations: 3

      ===============================================================
      OPTIONS TO TEST (WITH RATIONALE)
      ===============================================================

      1. innodb_doublewrite
      WHY: Crash-safety vs performance.
      EXPECTED: OFF is faster, ON is safer.

      2. character_set_server (latin1 | utf8 | utf8mb4)
      WHY: Charset affects CPU and index width.

      3. performance_schema (ON | OFF)
      WHY: Instrumentation overhead.

      4. binlog_row_image (FULL | MINIMAL | NOBLOB) (requires log-bin=1)
      WHY: Controls binlog volume.

      5. sync_binlog (0 | 1) (requires log-bin=1)
      WHY: Binlog durability cost.

      6. log-bin (0 | 1)
      WHY: Baseline cost of enabling replication/PITR.

      7. thread_handling (one-thread-per-connection | pool-of-threads)
      WHY: Thread model scalability.

      8. innodb_flush_log_at_trx_commit (0 | 1 | 2 )
      WHY: Durability vs performance.

      9. innodb_adaptive_hash_index (0 | 1)
      WHY: Lookup speed vs contention.

      10. query_cache_type (ON | OFF)
      WHY: QC mutex contention vs repeated SELECT speed.

      11. rpl_semi_sync_master_enable (0 | 1)
      WHY: Commit latency vs replication safety.

      12. rpl_semi_sync_master_wait_point (AFTER_SYNC | AFTER_COMMIT)
      WHY: Different semi-sync wait semantics.

      13. transaction_isolation (RU | RC | RR | SERIALIZABLE)
      WHY: Locking/MVCC overhead.
      NOTE: Must test with log-bin=0 and log-bin=1.

      ===============================================================
      Purpose:
      Provide a comprehensive performance map of MariaDB under different durability, replication, charset, flushing, and concurrency configurations. Others may add additional options or combinations here.
      ===============================================================

      Attachments

        Activity

          People

            jeb Jonathan Jeb Miller
            jeb Jonathan Jeb Miller
            Votes:
            0 Vote for this issue
            Watchers:
            2 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.