MySQL多线程同步MySQL-Transfer介绍

一、关于Transfer

MySQL-Transefer(下称Transfer)是一个基于MySQL+patch后得到的主从同步工具。
其主要目的是为了解决原生版本的主从同步里,从库是单线程apply主库的binlog,导致的延迟。

最近完成测试的版本将multi-master (by P.Linux)合并到Transfer中并针对支付宝的应用需求做了定制性能改进。

这里做一个已经完成的完整功能介绍。

二、总体结构

 
 

说明:
1、Transfer可以注册成多个Master的从库
2、Transfer接收多个Master传入的binlog后将更新执行到Slave上
3、Transfer本地没有数据

如果你没有多主的需求,那结构就是Master -> Transfer -> Slave.

三、内部结构

      既然是单线程造成的主从延迟,提升就需要用多线程来实现。

  我们来看单主情况下的内部实现。

 

说明:左上角是Master, 右上角是Transfer,下面是Slave。

 

四、增加参数及对应说明

在my.cnf中新增如下几个参数:

remote_slave_hostname = Ip of Slave
remote_slave_username = root
remote_slave_password = root
remote_slave_port = Port of Slave
stop_slave_on_error = 1
remote_table_maps_file = ./table_maps
transfer_slave_thread = 10 

说明:

1、  前四个是目标slave库的认证信息
2、  Stop_slave_on_error 一般建议配置为1,表示只要有一个线程执行出错,所有slave_io_thread都停止

3、  remote_table_maps_file路径指向本地文件,文件中每行格式为 “表1 表2”,表示在Transfer做同步时,将Master上所有对表1的操作都更新到表2.

4、  transfer_slave_thread是一个只读参数,控制Transfer有多少个线程做并发更新(若为1则表示串行更新,性能与官方版本相同)。一般建议配置为系统核数2倍。

 

 

五、一些说明

1、由于Transfer是在MySQL基础上打的patch,因此支持几乎所有MySQL的监控命令,你原来加在Slave上的监控,可以直接改到Transfer上。

2、             一般我们将Transfer和Slave放在同一个机器上(等于是装两个MySQL,一个是Transfer,一个是真正的slave)

3、             Transfer按照表名hash将不同表的更新分配到不同的线程,因此在多表环境下才能看得到性能提升

4、             Master的binlog格式必须设置成row

5、             若需要用到多个Master,给每个Master命令一个channel,命令序列为 change master channel1 to master_log_file=xxx…… ; start slave channel1; 可以单独对一个chanel执行start\stop等命令

6、             若只需要一个master,则语法格式不变

 六、性能效果

测试场景如下,在Master上的16个表并发分别插入10w行。期间先停止同步。插入完成后,再分别测试直接用原生版本主从和Transfer的性能。

主库插入耗时66.1s 。

 

耗时

平均tps

MySQL主从

363s

4402/s

Transfer同步

66s

24242/s

 

七、Patch应用

下载地址。 基于5.1.48,   patch –p0 < transfer_mysql.diff. 后续安装步骤与原生MySQL相同.

示例my.cnf 从此下载,记得修改程序安装目录。

tsmc12: m0po max length问题(H384.M0_PO.L.1) 手动调整可以挪cell,制造上下两个row相对的至少一个site的空间,通过插普通filler来解决,这里需要注意的是,tsmc12有via0的规则,需要让via0落在via0 grid上。在pt eco之后会有一些m0po max length问题出现,大部分问题都可以通过替换decap来解决,少部分由于局部density过高,需要手动调整。更多学习内容请关注「拾陆楼」知识星球。#ICC2中替换decap的参考脚本。 阅读详情

相关推荐

Android GWP-Asan机制详解

基本用途:GWP-ASan是一种原生内存分配器功能,在内存分配时额外记录一些信息,用于检测DOUBLE_FREE、USE_AFTER_FREE、INVALID_FREE、BUFFER_OVERFLOW、BUFFER_UNDERFLOW五种内存错误问题。

专注于系统快稳省领域 4145

Mysql同步工具go-mysql-transfer简介(个人使用)

Mysql同步工具go-mysql-transfer简介(个人使用)

Years_of_sorrow的博客 1018

Mid-360激光雷达与Fast-LIO2实战:从环境搭建到实时点云建图

本文提供Livox Mid-360激光雷达与Fast-LIO2算法从零开始的实战教程。详细介绍了在Ubuntu和ROS环境下进行系统配置、依赖安装、硬件连接与网络设置的完整流程,并指导如何运行算法实现实时点云建图与可视化,最后总结了关键参数调优与常见问题排查方法。

weixin_29300241的博客 153

mysql transfer_MySQL多线程同步MySQL-Transfer介绍

一、关于TransferMySQL-Transefer(下称Transfer)是一个基于MySQL+patch后得到的主从同步工具。其主要目的是为了解决原生版本的主从同步里,从库是单线程apply主库的binlog,导致的延迟。最近完成测试的版本将multi-master (by P.Linux)合并到Transfer中并针对支付宝的应用需求做了定制性能改进。这里做一个已经完成的完整功能介绍。二、...

weixin_34101577的博客 473

新手必看:如何用PhaGCN2和vConTACT2搞定宏病毒组注释(附避坑指南)

本文为宏病毒组研究新手提供了使用PhaGCN2和vConTACT2进行病毒注释的完整实战指南。内容涵盖从Conda环境配置、软件安装、参数解析到结果解读的全流程,并重点分享了整合双工具进行交叉验证的策略与常见报错解决方案,旨在帮助研究者高效、准确地完成病毒分类注释工作。

j2k3l4的博客 797

ArcGIS Pro MCP 开源:自然语言驱动的 AI 制图与分析

人工智能与大模型的快速发展,正推动专业软件从“手动操作”走向“自然语言控制”。模型上下文协议(MCP)作为连接 AI 与外部工具的标准接口,类似为 AI 安装的“USB 接口”,让大模型可以通过统一协议调用 GIS 软件能力。基于 ArcPy 构建的 ArcGIS Pro MCP 项目,将复杂的地图制图与空间分析封装为 112 个可被 AI 调用的工具,使文本指令直接驱动软件完成数据加载、符号化、出图乃至叠加统计等任务。对 GIS 工程师、数据分析师与测绘规划从业者而言,该开源项目显著降低专业软件使用门槛,

weixin_29054195的博客 279

mysql多线程访问同步_MySQL多线程同步MySQL-Transfer介绍

一、关于TransferMySQL-Transefer(下称Transfer)是一个基于MySQL+patch后得到的主从同步工具。其主要目的是为了解决原生版本的主从同步里,从库是单线程apply主库的binlog,导致的延迟。最近完成测试的版本将multi-master (by P.Linux)合并到Transfer中并针对支付宝的应用需求做了定制性能改进。这里做一个已经完成的完整功能介绍。二、...

weixin_29407885的博客 261

【连接器专题】 EIA-364 系列标准的完整列表

EIA-364 系列标准在电子工业中具有重要的地位,为电子连接器和互连系统的测试和验证提供了统一的、可操作的流程和方法,有助于提高电子产品的质量和可靠性,促进了电子工业的发展

一点硬件 2660

多线程mysql同步_MySQL多线程同步MySQL

一、关于TransferMySQL-Transefer(下称Transfer)是一个基于MySQL+patch后得到的主从同步工具。其主要目的是为了解决原生版本的主从同步里,从库是单线程apply主库的binlog,导致的延迟。最近完成测试的版本将multi-master (by P.Linux)合并到Transfer中并针对支付宝的应用需求做了定制性能改进。这里做一个已经完成的完整功能介绍。二、...

weixin_32419609的博客 549

故障诊断 | 小波变换机械设备外圈振动信号故障诊断

故障诊断 | 小波变换机械设备外圈振动信号故障诊断

天天酷科研的博客 506

【ArcGIS Pro微课1000例】0073:ArcGIS Pro3.5.2学习版下载及安装教程

ArcGIS Pro 3.5.2安装教程摘要:系统需Windows10及以上,8GB内存(推荐32GB)。安装步骤:1)安装.NET 8.0运行环境;2)执行主程序安装包,按向导完成基础安装;3)安装升级补丁;4)替换AfCore.dll文件并导入注册表。注意安装后删除临时文件节省空间。软件下载地址包含在百度网盘链接。安装过程需依次完成环境配置、主程序安装、补丁更新及破解步骤。

智慧空间实验室 1782

mysql多线程更新_MySQL多线程同步-Transfer解决主从同步延时问题

MySQL多线程同步系统结构 :传统的主从结构是[Master]à[Slave],Master和slave主从关系;使用transfer以后,[Master]à[Transfer].-->[Slave],Master和Transfer主从关系,Transfer和Slave是Client-Server关系。服务器环境:主库:192.168.15.216(3306端口)从...

weixin_35879114的博客 459

超声相控阵合成孔径成像FPGA设计介绍

1.仿真预览 2.理论分析 系统的基本结构如下所示: 以上是实际中完整的结构,系统中会涉及到两块板子中的时钟,这个就是设计一个时钟采样同步的问题,即所谓的时钟同步。一般这种情况,往往使用内插的方式来解决。这是由于,在实际中,超生波接收到的信号是由本身系统发送出去反射回来得到的,因此从另外一方面将,其是同步的。但是在接收的时候通过内插的方法解决其中的延迟问题。 根据论文中的介绍,整个系统分为如下几个部分: ·模拟发送信号,这个部分由MATLAB产生测试数据并量...

FPGA/MATLAB学习教程/源码/项目合作开发 2072

mysql 5.6 多线程同步_MySQL多线程同步-Transfer解决主从同步延时问题-测试版

系统结构 :传统的主从结构是[Master]à[Slave],Master和slave主从关系;使用transfer以后,[Master]à[Transfer].-->[Slave],Master和Transfer主从关系,Transfer和Slave是Client-Server关系。服务器环境:主库:192.168.15.216(3306端口)从库:192.168....

weixin_39523887的博客 180

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

MySQL多线程同步-Transfer使用测试

由淘宝核心系统研发—数据库组开发的MySQL-Transfer,用于解决MySQL主从同步延迟的问题,从MySQL单线程到多线程的工作模式。可以观看@丁奇的相关资料: MySQL多线程同步-Transfer使用说明MySQL异步复制延迟解决的架构设计与运维架构—在线播放—优酷网 系统结构 : 传统的主从结构是[Master]à...

weixin_30520015的博客 153

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

mysql线程同步_MySQL多线程同步MySQL-Transfer介绍

转载自:http://dinglin.iteye.com/blog/1581877一、关于TransferMySQL-Transefer(下称Transfer)是一个基于MySQL+patch后得到的主从同步工具。其主要目的是为了解决原生版本的主从同步里,从库是单线程apply主库的binlog,导致的延迟。最近完成测试的版本将multi-master (by P.Linux)合并到Transfe...

weixin_36382907的博客 118

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

mysql transfer 安装_MySQL多线程同步MySQL-Transfer介绍

一、关于TransferMySQL-Transefer(下称Transfer)是一个基于MySQL+patch后得到的主从同步工具。其主要目的是为了解决原生版本的主从同步里,从库是单线程apply主库的binlog,导致的延迟。最近完成测试的版本将multi-master (by P.Linux)合并到Transfer中并针对支付宝的应用需求做了定制性能改进。这里做一个已经完成的完整功能介绍。二、...

weixin_29484843的博客 216

利用mysql同步线程_MySQL多线程同步MySQL-Transfer介绍

一、关于TransferMySQL-Transefer(下称Transfer)是一个基于MySQL+patch后得到的主从同步工具。其主要目的是为了解决原生版本的主从同步里,从库是单线程apply主库的binlog,导致的延迟。最近完成测试的版本将multi-master (by P.Linux)合并到Transfer中并针对支付宝的应用需求做了定制性能改进。这里做一个已经完成的完整功能介绍。二、...

weixin_30452659的博客 280

mysql线程php_MySQL多线程同步MySQL-Transfer介绍

一、关于TransferMySQL-Transefer(下称Transfer)是一个基于MySQL+patch后得到的主从同步工具。其主要目的是为了解决原生版本的主从同步里,从库是单线程apply主库的binlog,导致的延迟。最近完成测试的版本将multi-master (by P.Linux)合并到Transfer中并针对支付宝的应用需求做了定制性能改进。这里做一个已经完成的完整功能介绍。二、...

weixin_39914499的博客 96

MySQL多线程同步-Transfer解决主从同步延时问题-测试版

系统结构 : 传统的主从结构是[Master]à[Slave],Master和slave主从关系; 使用transfer以后,[Master]à[Transfer].-->[Slave],Master和Transfer主从关系,Transfer和Slave是Client-Se...

weixin_33882443的博客 141

Mysql Transfer配置

在Mysql的主从同步是单线程的,这样在对多张表进行同步时往往速度会比较慢。针对这样的情况,淘宝丁奇在mysql基础上开发了一个新的支持多线程同步的程序,命名为Transfer,有兴趣的同学可以阅读他的博客http://dinglin.iteye.com/blog/1581877。 Transfer本身也是Mysql,只不过是用来转发而已,它的数据库中有需要同步的表的结构但是没有数据。Trans

nmjnglx的专栏 1353

MySQL多线程同步-Transfera使用测试

Transfer2.0  背景        Transfer是一个主从多线程同步工具,直接patch在MySQL中。2011年开发完成。于去年的12.12上线,并撑住高峰期主从,保证从库无延迟,使得应用能够直接从从库上读数据。        对Transfer1.0背景有兴趣的同学可以看我以前的一篇博客。   新功能        Transfer第一

940

mysql data transfer_MySQL主从同步加速 Transfer-- FAQ

Q: Transfer是什么A: 是一个解决MySQL原生主从同步延迟的方案。 Transfer本身是一个在MySQL源码上打的patch,可以用于当Slave,也可以用于当第三方工具,将Master的数据同步发给Slave。 利用多线程实现主从无延迟。Q: Transfer目前的发布形式?A: Transfer会在今年内开源,目前的发布形式是可执行的mysqld文件。 有两个版本,分别是官方的5...

weixin_29564301的博客 333
上一篇: 关于 innodb_stats_on_metadata 的设置问题
下一篇: MySQL 中 QueryCache 的锁模型
iteye_621
博客等级 码龄8年 12粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值