当前位置:首页 > 智能 > 云计算

腾讯云数据库技术分享会圆满落幕,全方位解读自研数据库CynosDB

云计算 2019-03-22 14:56:01

来源:通信世界网   责任编辑:李琦

导语

2019年3月16日,由腾讯云云+社区主办的腾讯云自研数据库 CynosDB 技术分享会圆满落幕,来自各行各业的三百余位开发者到场与腾讯云数据库技术专家就CynosDB的技术原理和实现,进行了深入交流探讨。

  战略合作伙伴英特尔也为本次分享会的成功举办提供了大力支持。

  作为腾讯云在数据库领域的重要布局,CynosDB单节点读性能可以达到130万QPS,全面超越业内目前最高的100万QPS水平,而价格仅为商业数据库的1/15。

  架构上,CynosDB完全兼容开源数据库引擎,是国内首家兼容MySQL5.7和PostgreSQL10的云数据库产品。内核层面,腾讯云数据库团队总共进行了近60多项优化。为了提升系统可用性,CynosDB以软件优化与新硬件结合为理念,采用了先进的计算和存储分离架构,实现了计算无节点状态,支持秒级故障切换和恢复,数据备份时间缩短到60秒之内,速度提升了180倍。

  会上,腾讯云数据库领域的资深大咖全方位剖析了CynosDB的技术内幕,解读兼容两大主流开源数据库的一主多从架构、高可用及快速恢复实现、可计算智能存储,奉上了一场关于“腾讯云原生CynosDB”的技术盛宴。

1553237390531083860.png

  CynosDB技术内幕——新一代计算引擎

  会上,腾讯高级工程师尚博分享了关于CynosDBfor MySQL计算存储分离架构的实现。他表示,计算与存储的分离,不仅在性能、扩展性和高可用方面有着大幅的提升,而且架构的解耦使得计算层和存储层都获得了较大的优化空间。

1553237401283031386.png

  腾讯高级工程师尚博

  对于计算存储分离架构的实现与优化方面,尚博谈到了数据库服务是一个有状态、重IO的服务,为了解决传统数据库上云遇到的种种问题,如备份回档、弹性扩展、数据冗余、迁移等,传统厂商可能会选择共享存储替代本地存储的方案,虽然能解决部分问题,但基于网络的IO却面临着极大的挑战,往往需要昂贵的硬件和技术来支撑,无形中增加了数据库服务的成本。基于以上问题,CynosDB引入计算存储分离的架构,存储层使用共享的分布式块存储云服务,计算层则将不必要的IO全部卸载,实现计算与存储基于日志传输的新架构。

  不仅如此,基于多年数据库内核研发经验,尚博在日志处理方面有深入研究。他详细介绍了如何实现基于日志传输的计算存储分离架构,以及计算层基于架构解耦提供的优化空间所做的优化细节,如引擎卸载、异步处理等。在解决以上痛点的同时,CynosDB很好的诠释了存储层高可用,计算层高扩展和高性能的特点,如写性能是自建云数据库的3.5倍、秒级故障切换、弹性扩展、持续备份能力等。

  可计算智能存储揭秘

  腾讯高级工程师樊伟为开发者详细介绍了CynosDBfor MySQL整体软件架构,同时详细解读了page读写、redo流程、recovery流程以及 DBStore软件模块,并重点介绍了DBStore模块负责所有Redo的相关逻辑处理。大致流程如下,客户端发送日志流到DBStore模块;DBStore对该模块redolog进行排序,判断与persistqueue中的log是否连续;若log连续,下一步则进行持久化,同时将这些log发送到一些分布式的副本节点;待副本返回应答和本地持久化成功之后,就可以向前端返回成功了。redolog在单个存储节点内,一次写入就可以完成返回。

1553237438482056372.png

  腾讯高级工程师樊伟

  最后,樊伟简单介绍了Atlas存储平台。他提到CynosDB借助Atlas平台能力快速构建了DB部分能力,比如物理备份等;除此之外还分享了Atlas系统的架构、数据路由方式、IO协议栈,以及系统的高可用性与部分存储特性。想了解更多细节可搜索关注腾讯云数据库官方微信,回复0316即可下载分享会PPT。

  CynosDB高可用架构及快速恢复实现

  腾讯高级工程师李岩从管控的角度讲解了CynosDBfor MySQL的高可用系统,主要对高可用系统的设计方式、快速恢复、脑裂问题的规避以及整体架构做了详细阐述。在分享了业内高可用系统的设计方案后,李岩介绍了腾讯云CynosDB for MySQL的设计方案,详细阐述了CynosDB如何做故障探测,针对故障如何决策以及故障恢复的机制。

1553237458079058013.png

  腾讯高级工程师李岩

  随后,李岩利用具体示例介绍了CynosDB如何实现快速恢复。他强调,恢复原理是一致性位点的获取,快速的恢复是通过并发广播和二叉堆排序来保证的。。

  在CynosDB for MySQL的计算存储分离架构中,一主多从情况下,多个数据库实例共享同一份数据,主从之间采用物理复制的方式,这种设计方式与传统数据库相比也有很大差异。

  CynosDB for PostgreSQL—主多读架构

  CynosDB不仅仅兼容MySQL,同时也兼容PostgreSQL。腾讯数据库高级工程师孙旭在本次会议中分享了CynosDB for PostgreSQL一主多读架构以及设计。

  传统PostgreSQL数据库通过数据冗余和日志同步实现一主多读,并允许备机在主机不可用时,替换主机继续对外提供服务,以保证系统的可用性。而在CynosDB的计算与存储分离架构下,数据库实例共享同一份数据,一主多读的设计与传统数据库相比也有很大差异。

1553237474716097660.png

  腾讯高级工程师孙旭

  孙旭指出,传统数据库在云上面临很多瓶颈:资源利用率低、扩展能力不足等,而CynosDB通过计算存储分离、日志下沉及异步回放等设计可以很好的解决这些问题。CynosDB for PostgreSQL架构的设计和优化,使得计算层可以轻松地实现横向扩展。

  同时,孙旭对传统PostgreSQL数据库的主备模式所暴露的问题进行了阐述,包括数据冗余、切换慢等。针对这些问题,CynosDB for PostgreSQL通过日志并行恢复、计算存储分离、数据buffer多版等技术,降低了系统切换时间以及读实例的创建时间,解决了传统数据库的主备模式所面临的问题。

  CynosDB for PostgreSQL分布式存储

  最后一位出场的嘉宾是腾讯云数据库CynosStore负责人许中清,他分享了CynosDB for PostgreSQL的基座分布式存储CynosStore的关键性技术,剖析了历史上出现的数据库集群集中主要架构,以及当前交易型数据库(例如Goolge的Spanner和Amazon的Aurora云数据库)的两种新架构和发展方向。

1553237492245066419.png

  腾讯云数据库CynosStore负责人许中清

  与传统数据库相比,CynosDB存储与计算分离的架构具有得天独厚的优势。为了让存储突破单节点限制,以及存储和计算资源灵活调度,CynosStore分布式存储发挥了其明显的优势。

  简单来说,CynosStore分布式存储就是基于日志异步写的存储系统,具备非对称读写,异步写、同步读,并发写入、存储系统本身负责日志串行化,支持两层、块设备层、文件系统层,能接入任何基于日志先写的存储系统,存储分布式化并且自身具备多副本高可用能力等特点。

免责声明:以上内容为本网转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点、亦不代表本网站赞同其观点或证实其内容的真实性。如有侵权请联系本网删除。
Top