纽约时间4月12日,著名开源数据库组织MariaDB在美国纽约曼哈顿召开了***届M|17 会议,腾讯云数据库专家程彬分享腾讯云的数据库CDB设计原理,讲述了诸多不为人知的内容,包括设计思想以及技术细节,在腾讯云的数据库设计中,性能优化和Logbus部分为核心特点。
该会议为著名MySQL的分支MariaDB的***次用户大会,旨在让更多用户、开发者和公司学习交流数据库技术,互通有无。
首先腾讯云数据库产品,基于大规模用户的使用,经过QQ、微信、腾讯游戏等***用户量的产品验证,积累了丰富的经验,在过去的2016年,用户数量倍增。
据程彬透露,在创立腾讯云数据库之初,各业务均希望数据库能提供更低的成本,同时提供更优的RTO和RPO,并能7*24小时的服务,免去繁琐的运维,让使用者能从繁重的数据库运维中解脱出来。因此,一开始的设计过程就对存储、运维、性能、可用性、扩展性、安全性以及成本等做了全局考虑。
客户们使用了云数据库后,对他们的运维和DBA团队,带来的工作方式的改变。可以节约更多时间来思考和业务结合更加紧密的工作。例如,他们把原来用于维护数据库的时间来做数据分析,深刻的理解业务数据,挖掘更多的商业价值。
CDB采用可配置的一主多Slave模式,可以设置这些Slave节点位于不同的可用区,在不同的配置条件下可以去满足不同行业的可用性要求。同时,也可根据可用区延迟灵活的配置同步方式,从而保证性能优先或数据一致性优先。为了提高性能,腾讯云数据库对SQL线程和IO现成的锁冲突,随机IO消耗以及Relaylog的缓存,均做了优化,并提出了自己的同步组件称之为LogBus,加速主备切换时间和故障发现时间。
因为云数据库的服务,和以往自建服务不同,为了完成回档、多份数据的持久性和数据的安全性,跨地域容灾等实例之间的数据同步,是一个用得非常多的特性。这个会关系到整个集群的可用性,因此,这里的logbus 接管了主备同步的数据,在中间优化传输速度,保证传输的可靠性,对整个集群带来了本质的改变。
演讲中,程彬详细介绍了性能优化的诸多手段,例如线程池、查询计划缓存,MVCC优化,redo log锁优化,以及jemalloc优化等,腾讯云数据库一直以性能著称,除了采用***,***秀的硬件设备外,内核优化也是杀手锏。并且程彬还承诺,这些优化会很快开源出来,共享到全球企业。
在数据持久性方面,腾讯云数据库采用弹性备份策略,可以针对数据进行逻辑备份,单表备份,以及物理备份,然后根据备份的数据,可以提供回档功能。
在分布式方面,程彬透露了一个新组件的内部开发即将完成。正在紧张测试阶段,该分布式服务可以把现有的数据库分片到主从版数据库,支持分布式事务,支持完整的DDL DML 等语句,扩容方便,支持PB级的分布式存储。
同时程彬也提到和腾讯云数据库在社区方面的一些后续动作,将在2017年投入人力,整理部分云数据库的优秀功能,回馈社区,并广泛的和国内外开源界进行沟通交流,引进优秀方案,输出研究成果,多参与社区活动,一起把将开源数据库提升到企业级品质。
***程彬还透露了部分后续数据库的规划,其中性能诊断、DBA工具集是大家翘首以盼的运维利器,期望早日与用户见面。