@@ -70,6 +70,10 @@ uint clone_max_io_bandwidth;
70
70
/* * Clone system variable: If network compression is enabled */
71
71
bool clone_enable_compression;
72
72
73
+ ulong clone_compression_algorithm;
74
+
75
+ uint clone_zstd_compression_level;
76
+
73
77
/* * Clone system variable: valid list of donor addresses. */
74
78
static char *clone_valid_donor_list;
75
79
@@ -135,6 +139,8 @@ SERVICE_TYPE(registry) * reg_srv;
135
139
SERVICE_TYPE (log_builtins) *log_bi = nullptr;
136
140
SERVICE_TYPE (log_builtins_string) *log_bs = nullptr;
137
141
142
+ const char *clone_compression_algorithms[] = {" ZLIB" , " ZSTD" , NullS};
143
+
138
144
/* Namespace for all clone data types */
139
145
namespace myclone {
140
146
@@ -636,6 +642,26 @@ static MYSQL_SYSVAR_BOOL(enable_compression, clone_enable_compression,
636
642
" If compression is done at network" , nullptr , nullptr ,
637
643
false ); /* Disable compression by default */
638
644
645
+ enum enum_clone_compression_algorithm { ZLIB = 0 , ZSTD };
646
+
647
+ static TYPELIB clone_compression_algorithms_typelib = {
648
+ array_elements (clone_compression_algorithms) - 1 ,
649
+ " clone_compression_algorithms_typelib" ,
650
+ clone_compression_algorithms, nullptr };
651
+
652
+ static MYSQL_SYSVAR_ENUM (compression_algorithm, clone_compression_algorithm,
653
+ PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_MEMALLOC,
654
+ " compression algorithm used in clone" , nullptr ,
655
+ nullptr , enum_clone_compression_algorithm::ZSTD,
656
+ &clone_compression_algorithms_typelib);
657
+
658
+ static MYSQL_SYSVAR_UINT (zstd_compression_level, clone_zstd_compression_level,
659
+ PLUGIN_VAR_NOCMDARG, " zstd compression level" , nullptr ,
660
+ nullptr , 3 , /* Default */
661
+ 1 , /* Minimum */
662
+ 10 , /* Maximum */
663
+ 1 );
664
+
639
665
/* * List of valid donor addresses allowed to clone from. */
640
666
static MYSQL_SYSVAR_STR (valid_donor_list, clone_valid_donor_list,
641
667
PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_MEMALLOC,
@@ -705,6 +731,8 @@ static SYS_VAR *clone_system_variables[] = {
705
731
MYSQL_SYSVAR (ssl_cert),
706
732
MYSQL_SYSVAR (ssl_ca),
707
733
MYSQL_SYSVAR (donor_timeout_after_network_failure),
734
+ MYSQL_SYSVAR (compression_algorithm),
735
+ MYSQL_SYSVAR (zstd_compression_level),
708
736
nullptr };
709
737
710
738
/* * Declare clone plugin */
0 commit comments