山水小站

宁静为篱 淡雅为阶 心自有桃源


  • 首页

  • 归档

  • 标签

  • 分类

  • 搜索

MySQL 8.0 能彻底解决困扰运维的复制延迟问题!

发表于 2021-05-26   |   分类于 mysql   |   暂无评论

MySQL 并行复制演进及 MySQL 8.0 中基于 WriteSet 的优化
--雁南归

MySQL 8.0 可以说是MySQL发展历史上里程碑式的一个版本,包括了多个重大更新,目前 Generally Available 版本已经已经发布,正式版本即将发布,在此将介绍8.0版本中引入的一个重要的新特性————基于 WriteSet 的并行复制方案,此方案号称是彻底解决困扰MySQL运维人员多年的复制延迟问题。

说到并行复制,这里简单的回顾一下各个版本的MySQL复制的演进,以帮助理解8.0版本中对并行复制MTS的优化。

MySQL 主从复制模型

MySQL的主从架构依赖于 MySQL Binlog 功能, Master节点上产生Binlog并将Binlog写入到Binlog文件中。Slave节点上启动两个线程:一个IO线程,从MySQL上捞取Binlog日志并写入到本地的RelayLog日志;另一个SQL线程,不断的从RelayLog日志中读取日志,并解析执行。这样通过在主机和从机上增加几个文件的顺序读写操作,就可以保证所有在主机上执行过的SQL语句都在从机上一摸一样的执行过一遍。而复制延迟,指的就是一个事务在Master执行完成以后,要多久以后才能在Slave上执行完成。

由于对Binlog文件以及RelayLog文件的读写均为顺序操作,在生产环境中,Slave上的IO线程对Binlog文件的Dump操作是很少产生延迟的。 实际上,从MySQL 5.5 开始,MySQL官方提供了半同步复制插件,每个事务的Binlog需要保证传输到Slave写入 RelayLog 后才能提交,这种架构在主从之间提供了数据完整性,保证了主机在发生故障后从机可以拥有完整的数据副本。因此,复制延迟通常发生在SQL线程执行的过程中。从架构图上可以看到,最早的主从复制模型中,只有一个线程负责执行 Relaylog,也就是说所有在主机上的操作,在从机上是串行回放的。 这就带来一个问题,如果主上写入压力比较大,那么从上的回放速度很有可能会一直跟不上主。(除此之外,MySQL的架构决定了Binlog只有在Commit阶段才会写入Binlog文件并Dump给从机,这也导致主从事务必然有执行延迟,这个问题在大事务中体现的特别明显,不过这个问题就不在本文的讨论范围内了)

既然主从延迟的问题是单线程回放RelayLog太慢,那么减少主从延迟的方案自然就是提高从机上回放RelayLog 的并行度。

阅读全文 »

农业银行绑定微信公众号 设置余额动账提醒

发表于 2021-01-10   |   分类于 生活实用   |   暂无评论

1.关注公众号

微信搜索"中国农业银行"关注即可

2.绑定账号

农业银行公众号--微金融--我的账号--微信银行--输入手机号

问题1:
微信银行?好吧这里意思是微信上的农业银行

问题2:
输入手机号下一步,提示"该手机号已绑定为安全手机号不能再次注册" ?!

阅读全文 »

python 获取自然周 周一 周日

发表于 2021-01-07   |   分类于 Python   |   暂无评论

1.获取本周周一

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time
from datetime import datetime, timedelta
today = time.strftime("%Y%m%d", time.localtime())
today = datetime.strptime(str(today), "%Y%m%d")
print(datetime.strftime(today - timedelta(today.weekday()), "%Y-%m-%d"))

阅读全文 »

2021年火车票退改签规则 售票时间 春运日历

发表于 2020-12-30   |   分类于 生活实用   |   暂无评论

2021年售票时间

12306网站售票服务时间延长,从每日的6:00至23:30,提前到每日5:00至23:30;

2021年改签规则

同步12306网站和线下窗口改签规则,线上也可改签乘车当日24点前其他列车车票。

2021年退票规则

线上退票业务办理时间优化至全天候24小时,同时退票截止时间由开车前25分钟调整至乘车站开车前;

对现金购票和已取报销凭证的旅客,可先在12306网站办理退票手续,180天内到全国铁路任一车站领取退票款项;

车站自助售票设备新增退票功能,满足使用电子支付方式且未换取纸质报销凭证旅客的退票需求,提供24小时全天候服务;

阅读全文 »

Nginx 转发时的一个坑 下划线 中横线问题

发表于 2020-12-10   |   分类于 nginx   |   暂无评论

最近遇到一个 Nginx 转发的坑,一个请求转发到 Tomcat 时发现有几个 http header 始终获取不到,导致线上出现 bug,运维说不是他的问题,这个锅我背了。

新增的几个 header 是这样的:

accept_sign
accept_token

反复检查代码,确定这些 header 是传了的,而且本地测试单独在 tomcat 中是可以接受到这些参数的,所以 tomcat 和命名本身是没问题的,初步断定是 Nginx 的问题。

经过一翻搜索,终于找到了一个 Nginx 的配置参数:underscores_in_headers,这个参数默认值为:off,即默认忽略带下划线的 header。

解决方案:

阅读全文 »

1...2930313233343536373839...43
山水小站

山水小站

惟山水与美食,此生不可辜负

212 文章
32 分类
0 标签
微博 知乎 豆瓣 mail
© 2026 山水小站
平安
顺遂
 |  鲁ICP备19029109号-1  |  鲁公网安备 37068202000213号