[mysqld]

# General
default_storage_engine  = InnoDB
binlog_format           = ROW
character_set_server    = utf8mb4
collation_server        = utf8mb4_general_ci
skip_name_resolve       = ON
skip_external_locking   = ON
local_infile            = 0
max_allowed_packet      = 128M
max_connections         = 750

# Binary logging and replication
log_bin                 = binlog
log_slave_updates       = ON
server_id               = 1000 # same on all Galera nodes in the same segment
expire_logs_days        = 7
gtid_domain_id          = 1000
gtid_strict_mode        = ON
gtid_ignore_duplicates  = ON

# Innodb
innodb_buffer_pool_size         = 4G # 60-75% of total RAM
innodb_flush_log_at_trx_commit  = 0
innodb_log_file_size            = 512M
innodb_flush_method             = O_DIRECT
innodb_file_per_table           = 1
innodb_autoinc_lock_mode        = 2
innodb_rollback_on_timeout      = 1
transaction_isolation           = 'READ-COMMITTED'
innodb_io_capacity              = 2000 # IOPS dependent
innodb_io_capacity_max          = 4000 # IOPS dependent
innodb_read_io_threads          = 4    # CPU dependent
innodb_write_io_threads         = 4    # CPU dependent