Q: What is Transfer? A: it is A solution for MySQL native Master/Slave synchronization latency. Transfer itself is a patch on the MySQL source code. It can be used as a server Load balancer or a third-party tool to synchronously send Master data to Server Load balancer. Use multiple threads to achieve no latency between the master and slave nodes. Q: What is the current release form of Transfer? A: Transfer
Q: What is Transfer? A: it is A solution for MySQL native Master/Slave synchronization latency. Transfer itself is a patch on the MySQL source code. It can be used as a server Load balancer or a third-party tool to synchronously send Master data to Server Load balancer. Use multiple threads to achieve no latency between the master and slave nodes. Q: What is the current release form of Transfer? A: Transfer
Q: What is Transfer?
A: It is A solution to solve the native master-slave synchronization latency of MySQL. Transfer itself is a patch on the MySQL source code. It can be used as a server Load balancer or a third-party tool to synchronously send Master data to Server Load balancer. Use multiple threads to achieve no latency between the master and slave nodes.
Q: What is the current release form of Transfer?
A: Transfer will be open-source this year. The current release form is executable mysqld files. There are two versions: Official 5.1.48 and Percona Server 5.5.18.
-
Transfer. MySQL.5.1.48 md5: 4d49f8d90e8bee8c870c1ef3a38cc979
Transfer. Percona.5.5.18 md5: f4784171c38008e0780cca44a97368eb
Last updated on 2012.9.12
(After downloading, check md5 ^_^)
Q: Does Transfer change the execution sequence of binlogs in the master database on the slave database, resulting in inconsistent data?
A: The execution sequence is changed. However, Transfer ensures that operations on the same record are performed in order, so data inconsistency is not caused.
Q: I used the transfer mode, but why is the error log of transfer always outputting "trans-> inner_events 3" without updating the slave database?
A: Before the Transfer is started, ensure that the Transfer contains the same table and table structure as that on the slave. Make sure that the table structure is the same. If not, dump the schema from the slave.
Q: I use mysql5.1.48. When creating a table in transfer, the core dump
A: If you are using innodb_plugin, replace ha_innodb_plugin.so.0.0.0 (lib/mysql/plugin directory)
Q: What changes do I need to make?
A: Please refer to this article http://www.linuxidc.com/Linux/2012-09/70627.htm
Q: What are the configuration restrictions on the Master/Slave database?
A: The following restrictions apply:
1) The binlog format of the master database must be row.
2) The table in the master database must have a primary key.
3) We recommend that you change max_allowed_packet of the slave database to 1 GB. The size of a single transaction in the master database cannot exceed max_allowed_packet
Q: After I overwrite mysqld, the entire Transfer instance cannot start?
A: Check whether mysqld has the executable permission. If not, run chmod 755 mysqld.
Q: Can I change the slave mode back to the original version at any time?
A: If you want to replace it with the original version at any time, you can add the loose _ prefix to the added parameters. In this way, replace mysqld, restart, and start slave.
Q: Under what circumstances is Transfer unsuitable?
A: In fact, it is A simple principle. If your native slave database is not delayed, you do not need to use it (it seems like it is nonsense ).
Q: In my test scenario, the TPS of transfer is slower than that of the native one? Thank you @-Zhou Bo
A: If the pressure starts from an empty table, and your BP is very open, io performance is good, the update statement is simple, and the qps is very high (12 w/s in this case ), in this case, a single thread can run fast. The production + Consumption links and multi-thread contention in the Transfer model will lead to performance degradation (6 w/s in this case ).
In actual online scenarios, I/O bottlenecks are more often used. In this case, the effect of multiple threads can be used to reflect the effect of Transfer. In our online scenario testing, the native 500/s, with Transfer 6000/s.
PS: for personal comparison, it is recommended to use the source code to install Percona Server.
My cmake Parameters
CFLAGS = "-O3-g-fno-exceptions-static-libgcc-fno-omit-frame-pointer-fno-strict-aliasing"
CXX = gcc
CXXFLAGS = "-O3-g-fno-exceptions-fno-rtti-static-libgcc-fno-omit-frame-pointer-fno-strict-aliasing"
Export CFLAGS CXX CXXFLAGS
# Cmake.-DCMAKE_INSTALL_PREFIX =/home/dingqi. lxb/mysql5-DEXTRA_CHARSETS = all
Cmake .\
-DCMAKE_BUILD_TYPE: STRING = Release \
-DSYSCONFDIR: PATH =/home/mysql5 \
-DCMAKE_INSTALL_PREFIX: PATH =/home/mysql5 \
-DENABLED_PROFILING: BOOL = ON \
-DENABLE_DEBUG_SYNC: BOOL = OFF \
-DMYSQL_DATADIR: PATH =/home/dingqi. lxb/mysql5/data \
-DMYSQL_MAINTAINER_MODE: BOOL = OFF \
-DWITH_EXTRA_CHARSETS: STRING = all \
-DWITH_BIG_TABLES: BOOL = ON \
-DWITH_FAST_MUTEXES: BOOL = ON \
-DENABLE-PROFILING: BOOL = ON \
-DWITH_SSL: STRING = bundled \
-DWITH_UNIT_TESTS: BOOL = OFF \
-DWITH_ZLIB: STRING = bundled \
-DWITH_PARTITION_STORAGE_ENGINE: BOOL = ON \
-DWITH_PLUGINS = heap, csv, partition, innodb_plugin, myisam \
-DDEFAULT_CHARSET = gbk-DDEFAULT_COLLATION = gbk_chinese_ci-DWITH_EXTRA_CHARSETS = ALL \
-DENABLED_ASSEMBLER: BOOL = ON \
-DENABLED_LOCAL_INFILE: BOOL = ON \
-DENABLED_THREAD_SAFE_CLIENT: BOOL = ON \
-DENABLED_EMBEDDED_SERVER: BOOL = OFF \
-DWITH_CLIENT_LDFLAGS: STRING = all-static \
-DINSTALL_LAYOUT: STRING = STANDALONE \
-DCOMMUNITY_BUILD: BOOL = ON;