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

Split wsrep_provider_options in several options

Details

    Description

      In some cases length 2048 for wsrep_provider_options are not sufficient and the string will be truncated in show variables output and information_schema.system_variables

      set global wsrep_provider_options = "base_dir = /opt/mysql/data/; base_host = 192.168.0.1; base_port = 3607; cert.log_conflicts = no; cert.optimistic_pa = yes; debug = no; evs.auto_evict = 0; evs.causal_keepalive_period = PT1S; evs.debug_log_mask = 0x1; evs.delay_margin = PT1S; evs.delayed_keep_period = PT30S; evs.inactive_check_period = PT0.5S; evs.inactive_timeout = PT15S; evs.info_log_mask = 0; evs.install_timeout = PT7.5S; evs.join_retrans_period = PT1S; evs.keepalive_period = PT1S; evs.max_install_timeouts = 3; evs.send_window = 4; evs.stats_report_period = PT1M; evs.suspect_timeout = PT5S; evs.use_aggregate = true; evs.user_send_window = 2; evs.version = 1; evs.view_forget_timeout = P1D; gcache.dir = /opt/mysql/data/; gcache.keep_pages_size = 0; gcache.keep_plaintext_size = 128M; gcache.mem_size = 0; gcache.name = galera.cache; gcache.page_size = 128M; gcache.recover = yes; gcache.size = 128M; gcomm.thread_prio = ; gcs.fc_debug = 0; gcs.fc_factor = 1.0; gcs.fc_limit = 16; gcs.fc_master_slave = no; gcs.max_packet_size = 64500; gcs.max_throttle = 0.25; gcs.recv_q_hard_limit = 9223372036854775807; gcs.recv_q_soft_limit = 0.25; gcs.sync_donor = no; gmcast.listen_addr = ssl://0.0.0.0:3607; gmcast.mcast_addr = ; gmcast.mcast_ttl = 1; gmcast.peer_timeout = PT3S; gmcast.segment = 1; gmcast.time_wait = PT5S; gmcast.version = 0; ist.recv_addr = 192.168.0.1; pc.announce_timeout = PT3S; pc.checksum = false; pc.ignore_quorum = false; pc.ignore_sb = false; pc.linger = PT20S; pc.npvo = false; pc.recovery = true; pc.version = 0; pc.wait_prim = true; pc.wait_prim_timeout = PT30S; pc.weight = 4; protonet.backend = asio; protonet.version = 0; repl.causal_read_timeout = PT30S; repl.commit_order = 3; repl.key_format = FLAT8; repl.max_ws_size = 2147483647; repl.proto_max = 10; socket.checksum = 2; socket.recv_buf_size = auto; socket.send_buf_size = auto; socket.ssl = YES; socket.ssl_ca = /etc/my.cnf.d/pki/ca-cert.pem; socket.ssl_cert = /etc/my.cnf.d/pki/aevcitdat010-cert.pem; socket.ssl_cipher = ; socket.ssl_compression = YES; ";
       
      set global wsrep_provider_options = "socket.ssl_key = /etc/mysql/ssl/server-key";
       
      
      

      UPDATE:
      As it is anyhow not optimal to use a system variable for a long list of options it would be better to separate the different options. The list of new option can become quite long, they therefore should be added when the galera library is loaded. This comment is explaining a possible solution.

      UPDATE after issue was closed:
      The new option

      plugin-wsrep-provider=ON
      

      is required to enable this new behavior to split the Galera Cluster system variable wsrep_provider_options into separate Galera Cluster system variables, instead of managing them in one large string.

      With

      plugin-wsrep-provider=OFF
      

      the old behavior is used, with the given limitation of the max length a system variable can have.

      The default is

      plugin-wsrep-provider=ON
      

      Attachments

        Issue Links

          Activity

            Config required to use new feature :

            [mysqld.1]
            wsrep-on=ON
            wsrep-cluster-address=gcomm://
            wsrep-provider=@ENV.WSREP_PROVIDER
            binlog-format=ROW
            plugin-wsrep-provider=ON
            

            jplindst Jan Lindström (Inactive) added a comment - Config required to use new feature : [mysqld.1] wsrep-on=ON wsrep-cluster-address=gcomm:// wsrep-provider=@ENV.WSREP_PROVIDER binlog-format=ROW plugin-wsrep-provider=ON

            Test plan :

            • Make sure that new variables are not visible if

              plugin-wsrep-provider=OFF

              or default
            • Make sure that new variables are visible and you can change them if

              plugin-wsrep-provider=ON

            • Defaults for parameters should be same
            jplindst Jan Lindström (Inactive) added a comment - Test plan : Make sure that new variables are not visible if plugin-wsrep-provider=OFF or default Make sure that new variables are visible and you can change them if plugin-wsrep-provider=ON Defaults for parameters should be same

            Updated branch : preview-10.11-MDEV-22570-wsrep-provider-options-plugin

            jplindst Jan Lindström (Inactive) added a comment - Updated branch : preview-10.11- MDEV-22570 -wsrep-provider-options-plugin

            ok to push

            ramesh Ramesh Sivaraman added a comment - ok to push

            Updated branch: bb-11.0-galera-split-wsrep-provider-options
            Requires Galera library : 26.4.14 from mariadb-4.x branch commit cf9e5e253

            jplindst Jan Lindström (Inactive) added a comment - Updated branch: bb-11.0-galera-split-wsrep-provider-options Requires Galera library : 26.4.14 from mariadb-4.x branch commit cf9e5e253

            People

              sysprg Julius Goryavsky
              Richard Richard Stracke
              Votes:
              0 Vote for this issue
              Watchers:
              14 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.