2017年数据库技术盘点 (9)

盖老师认为下一个时代是自动化、智能化的时代,从靠人去解决问题,过渡到靠产品、靠架构去解决问题,让数据库回归存储的本质,新的时代已经开启。

这是一朵深度思考的浪花,浪花背后是对产业前进之路的探索。

4.2 向MySQL提交bug的小浪花

2017年9月,鹅厂实习生晓宇同学向MySQL官方提交了BugID为87637的一个有关缓冲区刷脏页时消耗CPU资源严重的性能bug,并给出一个解决了涵盖多种场景下消耗CPU的patch。

Bug hunter并未重视这个有场景描述有代码分析有测试数据的bug,反而修改bug状态为“not a bug”,晓宇同学在bug被标识为“not a bug”后,有理有据地指出bug的成因、patch的原理等,然后有礼貌地再次打开bug,请MySQL官方重视。这样的过程,反反复复,反反复复,竟然反复了五次。直到一个月之后,持久的争执引起InnoDB研发老大Sunny Bains的关注,Sunny Bains认同了晓宇同学的patch,这场拉锯战才宣告结束。

现在,这朵小浪花已经随潮而去,但是这么一朵小小浪花,却能折射出较大的意义:

国内研发人员的素养和MySQL官方的傲慢形成了对比。

当世界并没有足够重视国内数据库技术研发的力量时,我们可以用实力说明事实。

现如今,我们还需要积极参与开源社区,提交Bug与patch,甚至提交有影响力的模块/WorkLog,这样才能逐步扭转“国内数据库尚未被国际认可,尚不达先进水平,发展尚任重道远”这样的现状。

在采访这个小故事结束时,晓宇所在团队TDSQL研发负责人说:TDSQL源自MySQL,我们鼓励TDSQL的组员为社区多做贡献。晓宇的这个故事,是我们团队的一个小事,相信更是中国数据库界的一个小事,但是勿以善小而不为,积善助善为这个世界多做一点好事是有意义的。

这,应该是一种情怀吧。

4.3 规范运维的小浪花

数据库运维中会制定各种流程和规范,很多运维同学不以为意,觉得太繁琐,殊不知这些都是在大量的失败经验中总结而来,是运维保障的基石。

让我们用发生在建荣同学身边的一个故事,一起感受DBA的生活。

公司每隔一段时间会发布一些活动,来提高人气和热度。

而发布一个活动的常规流程是这样的:

开发同学提交了一个DB变更,会打包发布到了ftp中。

DBA会从ftp得到指定的数据压缩包,解压把数据导入数据库。

测试同学会验证测试,验证后上线活动。

业务运营的同学会跟进活动,做活动反馈。

结果有一次却发生了一个诡异的问题。

活动已经接近尾声,运营的同学才发现数据比以往差了很多,然后测试的同学排查发现导入的数据比预期的少,然后追查到DBA这边,DBA发现数据导入是成功的,然后继续追根溯源,发现开发同学提供的数据更新包和DBA导入的包大小不一致。

经过一番排查和验证,发现原因就在于开发同学上传到ftp中的文件因为网络的原因,提示上传成功了,但是文件是不完整的,DBA解压的时候就少了很多数据,后续测试,运营跟进活动都会受到影响。

我们做故障复盘的时候,发现虽然整个流程是完整的,但是很多环节还是没有形成闭环。

怎么改进呢?

第一就是使用md5的校验码,能够做到文件校验。

第二就是通过平台化管理来杜绝人为问题。

第三就是业务的及时跟进。

所以说很多问题都不是纯粹的技术问题,要靠一套完整的制度和流程来规范和完善,规范本身虽不能够解决问题,但是能够减少出问题的概率。

5.跨年之夜,我们一起进步

随着云计算产业的发展,数据库云化趋势已经形成,而云化对大规模的数据库群、数据库集群等的运维提出挑战,于是数据库智能运维因需而生,而Oracle在AI火热的环境下,用自治数据库一举点燃了本年度数据库燃爆点。自治数据库已经不再是自动运维的数据库,而是智能运维的云端数据库。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspyjg.html