summaryrefslogtreecommitdiffstats
path: root/patches/fuel-library/mysql-sst-provider/0001-Allow-configuring-MySQL-WSREP-SST-provider.patch
blob: 632aa8f313b576714090379a3527cb8baee1c7dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
Date: Wed, 20 Apr 2016 14:54:42 -0700
Subject: [PATCH] Allow configuring MySQL WSREP SST provider

On some arm64 platforms xtrabackup is broken due to an outdated
MySQL/InnoDB code that it uses which is missing. To work around that
this patch allows choosing which WSREP SST provider to use. Aside of
already supported `xtrabackup-v2` and `mysqldump`, the `rsync` method
has been added as it is comparable to xtrabackup in terms of speed (or
is faster), has been validated to work on arm64 platforms where
xtrabackup is broken and it doesn't rely on db mechanisms to perform the
state transfer.

This patch is tied to a patch in fuel-web that introduces configuration
options for WSREP SST provider and in case nothing is specified, it
will choose `xtrabackup-v2`.

Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
---
 deployment/puppet/osnailyfacter/manifests/database/database.pp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/deployment/puppet/osnailyfacter/manifests/database/database.pp b/deployment/puppet/osnailyfacter/manifests/database/database.pp
index e741ff8..be19eb5 100644
--- a/deployment/puppet/osnailyfacter/manifests/database/database.pp
+++ b/deployment/puppet/osnailyfacter/manifests/database/database.pp
@@ -8,6 +8,7 @@ class osnailyfacter::database::database {
   $use_syslog               = hiera('use_syslog', true)
   $primary_controller       = hiera('primary_controller')
   $mysql_hash               = hiera_hash('mysql', {})
+  $wsrep_hash               = hiera_hash('mysql_wsrep', {})
   $debug                    = pick($mysql_hash['debug'], hiera('debug', false))

   $mgmt_iface = get_network_role_property('mgmt/database', 'interface')
@@ -17,6 +18,7 @@ class osnailyfacter::database::database {

   $mysql_root_password       = $mysql_hash['root_password']
   $enabled                   = pick($mysql_hash['enabled'], true)
+  $wsrep_sst_method          = pick($wsrep_hash['wsrep_method'], 'xtrabackup-v2')

   $galera_node_address       = get_network_role_property('mgmt/database', 'ipaddr')
   $galera_nodes              = values(get_node_to_ipaddr_map_by_network_role(hiera_hash('database_nodes'), 'mgmt/database'))
@@ -211,7 +213,7 @@ class osnailyfacter::database::database {
         'wsrep_cluster_name'             => $galera_cluster_name,
         'wsrep_provider_options'         => $wsrep_provider_options,
         'wsrep_slave_threads'            => $wsrep_slave_threads,
-        'wsrep_sst_method'               => 'xtrabackup-v2',
+        'wsrep_sst_method'               => $wsrep_sst_method,
         #TODO (sgolovatiuk): fix this, should be a specific user not root
         'wsrep_sst_auth'                 => "\"root:${mysql_root_password}\"",
         'wsrep_node_address'             => $galera_node_address,
@@ -264,7 +266,7 @@ class osnailyfacter::database::database {
       wsrep_group_comm_port => $wsrep_group_comm_port,
       bind_address          => $galera_node_address,
       local_ip              => $galera_node_address,
-      wsrep_sst_method      => 'xtrabackup-v2',
+      wsrep_sst_method      => $wsrep_sst_method,
       override_options      => $override_options,
     }