雷海林
腾讯数据库技术专家
数10多年的数据库内核开发经验,目前是腾讯金融数据库TDSQL技术负责人。
分享时间:10:50-11:40
分享议题:《TDSQL在金融交易场景的应用实践》
1、π社区:很高兴邀请到您在π年会深圳站分享,您给我们做一个自我介绍吧?
雷海林:我是毕业之后就加入了腾讯公司,多年的海量计费支付业务系统的开发经验,先后负责公司内部高一致性分布式Cache和分布式数据库的开发,目前主要负责腾讯分布式金融数据库产品TDSQL的研发。
2、π社区:您从事TDSQL开发多年,您能否给我介绍一下TDSQL和我们看到的社区开源版主要做了哪些优化呢?
雷海林:TDSQL的数据库引擎主要基于MariaDB和Percona分支,原生的社区版本在应用到金融场景的时候会遇到不少问题,我们改进了这些问题,这里简单描述下:
我们改进了线程池模型,修复了不少BUG并且优化了性能,如原生的线程池模型对于dump线程也当做活跃线程进行统计,容易引起性能抖动;事务提交的时候会阻塞读请求的响应;超过并发下线程池调度不理想的问题,另外我们针对线程池做了大量的统计信息进行监控
新增了强同步(相对于原生的异步,半同步)的模式,并且引入了异步化的提交模型,使得TDSQL能在廉价不可靠的硬件,主备延迟较大的网络上也能提供非常高的可用性,并且性能做到跟异步相当
大量安全特性的增强,如对drop实现成延迟删除(能显著避免数据误删恢复麻烦的问题),如默认配置下禁止创建非主键的表(也支持自动生成主键),禁止产生binlog过大的事务提交,对mysql库进行保护,原生的防火墙支持等等
修复较多BUG,如主备同步引起卡死,内存泄漏,索引选择不合理或者执行结果不正确,还有不少分布式场景下BUG
oracle模式的兼容,如完全兼容oracle序列
3、π社区:您在分享《TDSQL在金融交易场景的应用实践》这个分享,对于想使用MySQL做金融业务的这次有没有帮助(使用MySQL做金融业务有什么要注意事项的?
雷海林:TDSQL从一开始就是面针对金融场景设计,我们已经有了接近10年的使用经验,整个过程踩了大量的坑,因此我们的架构和实践对于使用MySQL来做金融业务的团队来说应该是有很好的借鉴意义的,正如在我们前面描述对内核的优化上很多时候都是因为金融场景对数据库的高一致性,高稳定性等有高要求才需要做优化。当然除了内核之外,还需要很多周边配套模块,比如读写分离,高一致性切换,备份,智能运营等系统。
4、π社区:您最近在研究MyRocks引擎,对于这个引擎使用上有没有建议?
雷海林:MyRocks引擎采用LSM这种数据结构,特别适合插入型的场景,比如流水,监控等时序数据,压缩率很好,比如我们的流水场景采用RocksDB引擎之后同样的数据量空间消耗只到原来的1/5。但是此引擎在与MySQL体系整合过程中,我们也发现了不少问题,比如查询性能不够好(内部实现还有较多粗粒度的锁),内存的控制不大好,比较容易引起OOM,字符序不够灵活,甚至部分二级索引的查询数据错乱等等,因此如果使用社区版本的话用在很关键的业务场景中还需要慎重。
5、π社区:您是资深的数据库开发人员,想从事数据开发人员,很多人都迷茫用什么IDE及什么环境开发,见过很多想从事源码阅读人员,最终成为了IDE插件开发高手了。嘉宾能否分享一下,你从事源码开发的环境?
雷海林:数据库和其他大型应用软件没有太大区别,我觉得也不需要用到IDE中太多的高级特性,有较方便的跳转,查看函数调用关系等基本功能就差不多了,所以选择IDE更多是个习惯问题,身边的同事有用eclipse,有用vi和clion等等,我已经习惯了eclipse+cdt了。
「π」年会-深圳站
主办:「π」社区主办
协办:知数堂、vivo
赞助:爱可生、青云
时间:年12月15日08:00-18:00
地点:南山区南京大学产学研基地A座5楼ACTLab瑞知实验室
交通:地铁2号线科苑站D口
活动报名报名链接: