APP下载

在线图表更新技术的改进与应用

2016-02-09王雪梅张少波

实验科学与技术 2016年6期
关键词:数据库系统

王雪梅,张少波

(南京邮电大学 计算机学院,江苏 南京 210003)

在线图表更新技术的改进与应用

王雪梅,张少波

(南京邮电大学 计算机学院,江苏 南京 210003)

针对MySQL数据库在进行数据定义语言(DDL)操作时因锁表动作引起长时间业务阻塞的问题,实现了一种不阻塞读写事务的在线图表更新(OSC)方法。考虑到电商数据库对读写事务的可用性要求,OSC系统将具有原子性的DDL语句拆分成若干步骤,创建临时表分片拷贝全量数据,并利用触发器保证增量数据的一致性,在实现无锁更改表结构的同时,解决了业务长时间阻塞的问题。另外,针对OSC技术在应用场景中遇到的系列问题,提出了相应的改进方法,如预检测、防并发执行等,并结合淘宝实际数据库架构,提供了复杂场景下OSC技术的应用分析。

数据一致性;影子表;在线图表更新;触发器

互联网电商平台一般以“n个9”作为指标,对其业务提出高可用性要求;如“5个9”指一年内系统不能正常工作的时间少于5′15″。但早期的MySQL数据库在执行更改表结构的DDL操作时因对整张表引入锁表动作,导致较长时间的业务阻塞[1-3]。2010年,为了解决这个问题,Facebook的数据库技术团队首次提出在线图表更新(online schema change,OSC)[4]解决方案。2011年,阿里巴巴的数据库团队研发出了类似OSC技术的产品MyDDL。同时,MySQL在5.1版本中提供了Fast Index Creation的功能,以InnoDB插件的形式在Optimized Create Index和Drop Index上避免表拷贝行为[5-7]。MySQL的5.6版本引入DDL Online Operate[8],虽然在大部分表更新操作中避免了表拷贝,一定程度上缓解了表锁定的问题,但由于不能支持全部的DDL操作[9],例如,更改字段类型等,仍然不能彻底消除因日常运维的频繁表结构更改对业务可用性的影响。……

登录APP查看全文

猜你喜欢

数据库系统
Smartflower POP 一体式光伏系统
WJ-700无人机系统
ZC系列无人机遥感系统
基于PowerPC+FPGA显示系统
半沸制皂系统(下)
连通与提升系统的最后一块拼图 Audiolab 傲立 M-DAC mini
数据库
数据库
数据库
数据库