@@ -70,6 +70,10 @@ uint clone_max_io_bandwidth;
7070/* * Clone system variable: If network compression is enabled */
7171bool clone_enable_compression;
7272
73+ unsigned long clone_compression_algorithm;
74+
75+ uint clone_zstd_compression_level;
76+
7377/* * Clone system variable: valid list of donor addresses. */
7478static char *clone_valid_donor_list;
7579
@@ -636,6 +640,28 @@ static MYSQL_SYSVAR_BOOL(enable_compression, clone_enable_compression,
636640 " If compression is done at network" , nullptr , nullptr ,
637641 false ); /* Disable compression by default */
638642
643+ static const char *clone_compression_algorithms[] = {
644+ " MYSQL_UNCOMPRESSED" , " MYSQL_ZLIB" , " MYSQL_ZSTD" , " MYSQL_ZSTD_STREAM" ,
645+ " MYSQL_LZ4F_STREAM" , " MYSQL_INVALID" , NullS};
646+
647+ static TYPELIB clone_compression_algorithms_typelib = {
648+ array_elements (clone_compression_algorithms) - 1 ,
649+ " clone_compression_algorithms_typelib" , clone_compression_algorithms,
650+ 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_compression_algorithm::MYSQL_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+
639665/* * List of valid donor addresses allowed to clone from. */
640666static MYSQL_SYSVAR_STR (valid_donor_list, clone_valid_donor_list,
641667 PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_MEMALLOC,
@@ -705,6 +731,8 @@ static SYS_VAR *clone_system_variables[] = {
705731 MYSQL_SYSVAR (ssl_cert),
706732 MYSQL_SYSVAR (ssl_ca),
707733 MYSQL_SYSVAR (donor_timeout_after_network_failure),
734+ MYSQL_SYSVAR (compression_algorithm),
735+ MYSQL_SYSVAR (zstd_compression_level),
708736 nullptr };
709737
710738/* * Declare clone plugin */
0 commit comments