腾讯云mysql的技术原理_腾讯云自研数据库 CynosDB 存储架构揭秘!
All in 云+时代,数据库对于任何企业而言,都是其应用的核心资源,而数据库的高可用性、按需付费、按需扩展等属性更是解放了大批开发者。
那么,如何选择适合自身企业 IT 架构及业务的核心数据库,想必是每一个 CIO/CTO 必须面对的问题。
2019年3月16日,由云+社区主办,英特尔作为战略合作伙伴的腾讯云自研数据库 CynosDB 交流会,在北京北邮科技酒店举行,本次交流会带你全方位了解 CynosDB、揭秘技术内幕,并解读兼容两大主流开源数据库的一主多读架构、高可用架构及快速恢复实现、可计算智能存储和分布式存储。
如此详细且深入的交流与探讨,自然吸引了众多技术小伙伴前来“围观”。而早早坐满会场的技术小伙伴们,也再次证明了技术人对技术的热情,是无法阻挡的。
此次交流会,五位数据库领域资深大咖为到场的百余位朋友,奉上了一场关于“腾讯原生CynosDB”的技术盛宴,也让我们度过了一个充实且精彩的下午。
CynosDB技术内幕——新一代计算引擎
腾讯高级工程师尚博作为第一位演讲嘉宾,分享了关于CynosDB、MySQL的计算存储架构、分离架构的实现。
他表示,计算与存储的分离架构,不仅在性能、扩展性和高可用方面有着大幅提升,更在计算与存储的解耦之后,计算层面有着较大的优化空间。而接下来尚博为我们详细地介绍了运算存储架构的实现与优化。
腾讯高级工程师尚博
尚博表示,为了解决传统数据库带来的诸多不便,国内厂商大多会将本地盘换成共享存储,但却面临着共享存储网络无法支撑大量IO的窘境。基于以上两点,CynosDB将不必要的IO全部卸载,数据可以通过Log得以恢复,所以CynosDB里面的IO只有一部分。除此,将Master部分日志写进TXStore中,底层诸多的存储节点和分片,备份直接从分布式存储备份到数据中心。
拥有多年数据库内核研发经验的他,在日志方面有着资深的研究与开发经验,在提到“日志即数据库”时,他详细地介绍了日志在架构中的处理方法。
除此之外,他还为大家解答了CynosDB在未修改参数的情况下,达到21万性能的目标,卸载大部分数据库引擎中的模块,恢复写在存储程序中;异步、流水线、批处理;大量使用Lock free结构,以及在卸载诸多流程后,可以用Bypath优化。
可计算智能存储揭秘
腾讯高级工程师樊伟第二个登场,首先他为大家展示了TXStore软件架构,并介绍了腾讯云后端的存储平台Atlas node,这款腾讯自研的分布式存储平台,支持块、文件、数据库。并介绍了TXStore的些读写流程与DB recovery的流程。
腾讯高级工程师樊伟
在这里,樊伟着重介绍了DB recovery模块,负责所有Redo的卸载逻辑处理的DB recovery模块,首先客户端发送的存储节点,存储节点对该log进行简单排序,在其判断已落地的log是否连续后,紧接着进行持久化,随后将这些log发送到一些分布式的复制节点,整个log在单个节点一次写入就可以完成的。
最后,他简单的介绍了Atlas存储平台后,他提到腾讯云借助该平台在做CynosDB带来的好处。
除此之外,樊伟还介绍了包括Atlas系统的架构,数据路由方式、IO协议栈,以及系统的高可用性与存储特性。
CynosDB高可用架构及快速恢复实现
腾讯云/云架构平台部CDB数据库团队的李岩,作为第三个出场的讲师从管控的角度讲解了CynosDB的高可用性能。
首先,他分享了业内高可用系统的设计方案,并介绍了腾讯云的设计方案:第一,如何探测;第二,如何探测故障;第三,如何恢复。
腾讯云/云架构平台部CDB数据库李岩
其次,李岩针对CynosDB的基础版,利用具体示例介绍了其如何实现快速恢复。他强调,
计算层有两个MySQL进程,一个存储的Client。存储层有TXStore,恢复原理是一致性问题的获取,只要拿到这个问题,上层就会知道,直接构建一个进程,然后去做恢复或者提交。
以上,李岩在本次分享中主要对高可用系统的设计方式、快速恢复、脑裂问题的规避以及整体架构,对PostgreSQL数据库通过数据冗余和日志同步实现一主多读,并允许备机在主机不可用后,替换主机继续对外提供服务,保证系统的可用性。
在CynosDB的计算存储分离架构里,数据库实例共享同一份数据,而且一主多读的设计与传统数据库相比也有很大差异。
CynosDB for PostgreSQL——主多读架构
腾讯云CynosDB不仅仅兼容MySQL,同时也兼容PostgreSQL。PostgreSQL数据库通过数据冗余和日志同步实现一主多读,并允许备机在主机不可用后,替换主机继续对外提供服务,保证系统的可用性。
在CynosDB的计算存储分离架构里,数据库实例共享同一份数据,而且一主多读的设计与传统数据库相比也有很大差异。
本次技术沙龙的下半场由腾讯数据库开发工程师孙旭,为大家分享了CynosDB for PostgreSQL一主多读架构。
腾讯数据库开发工程师孙旭
关于CynosDB for PostgreSQL的架构、关键设计、一主多读架构进行了介绍。因传统数据库在云上面临资源利用率低、扩展能力不足等问题,所以CynosDB应运而生。
CynosDB的解决思路是计算存储分离、日志下沉及异步回放、共享分布、日志异步回放和多版本读(同步)。其次,在传统PostgreSQL主备模式仍有缺点的情况下,采用一主多读架构,可以增强横向扩展读能力,并提升数据库的可用性。
CynosDB for PostgreSQL分布式存储
最后一位出场的嘉宾是腾讯云数据库CynosStore负责人许中清,分享中他为大家分享了CynosDB for PostgreSQL分布式存储的一些关键性技术。
首先,许中清为大家介绍了历史上出现的数据库集群集中主要架构,并强调目前交易性数据库最主流的方式,分别是类似谷歌的Spanner、以及类似亚马逊 Aurora的数据库。
腾讯云数据库CynosStore负责人许中清
接下来,他将传统数据库与CynosDB进行对比,详细解释了CynosDB数据库的优势——存算分离架构。他表示为了让存储突破单节点限制,PostgreSQL分布式存储发挥了其明显的优势。
最后,许中清总结CynosDB,简单来说就是基于日志异步写的存储系统,并指出其特点分别是非对称读写;异步写、同步读;并发写入、日志串行化;支持两层、块设备层、文件系统层;能接入任何基于日志先写的存储系统;存储分布式化。
随着许中清先生的精彩演讲的结束,在场的百余位技术小伙们,与云数据库大咖们互动切磋,伴随着欢声笑语与热烈的现场交流,本次云+技术沙龙——腾讯云自研数据库CynosDB交流会圆满结束。
当然,如果你还意犹未尽,让我们继续关注4月13日在北京车库咖啡举办的探索AI,赋能未来-计算机视觉的原理及最佳实践技术沙龙,现场更有Workshop活动哦。
腾讯云mysql的技术原理_腾讯云自研数据库 CynosDB 存储架构揭秘!相关推荐
- 京东云mysql 外网访问_干货|上云了,如何保障云数据库的高可用?
责任共担模型 朋友和我吐槽,自从他负责的系统上云后,在云数据库上经历了好几次故障,而事后的故障复盘,居然都是他们自己的责任和问题,这让他很被动.更尴尬的是,原想着上云后,数据库的问题都是公有云厂商负责 ...
- 腾讯云mysql高可用方案_腾讯云数据库团队:MySQL数据库的高可用性分析
作者介绍:易固武,腾讯高级工程师,参与腾讯账号安全建设,腾讯数据仓库(TDW)优化改造,腾讯云数据库等项目,对大规模分布式存储和计算系统有浓厚的兴趣和经历 MySQL数据库是目前开源应用最大的关系型数 ...
- 腾讯云mysql如何设置远程访问_腾讯云主机 MySQL 远程访问配置方法
使用腾讯云主机安装 MySQL 之后,需要通过以下步骤进行配置以实现远程访问,主要分为两大部分 一.服务器端口配置 1.如果你的云主机配置了安全组,如果没有配置安全组就可以直接跳过"步骤1& ...
- 免费报名 | 腾讯云自研数据库CynosDB交流会
本文由云+社区发表 作者:技术沙龙 All in 云+时代,数据库的高可用性.按需付费.按需扩展等属性解放了大批开发者.腾讯发布的自研数据库CynosDB作为国内首款同时兼容MySQL和PG的云原生数 ...
- 腾讯视频手机app下载安装_腾讯视频怎么签到
只需要打开腾讯视频,就可以在线享受腾讯视频网站内全部免费高清正版视频.最新影视大片.最独家的综艺.旅游.纪录片,在众多的播放器当中,腾讯视频堪称完美.腾讯视频是一个高品质的视频网站,腾讯视频依靠独特的 ...
- 语音识别技术原理是什么 讯飞语音识别技术特点介绍【详解】
语音识别技术原理简介 自动语音识别技术(Auto Speech Recognize,简称ASR)所要解决的问题是让计算机能够"听懂"人类的语音,将语音中包含的文字信息"提 ...
- rap技术原理_「水深坑多」做分子海绵,你还需要了解这些技术
技术干货!快来收藏哦 做lncRNA/circRNA分子海绵研究,您需要了解这些技术: 1. Northern blot 2. RACE 3. FISH 4. RIP 5. RNA pull down ...
- 阿里云mysql本地可以连接数据库_本地电脑连接阿里云服务器上搭建的MySQL数据库...
一.前言 在上一篇博客:在CentOS 7 下安装mysql5.7 我们在阿里云服务器上安装好了MySQL 5.7.那么怎样可以使我们在本地的 navicat for MySQL工具上连接并进行数据库 ...
- 深入探索android热修复技术原理_打卡活动:技术书籍书单
不知不觉,码个蛋打卡活动都已经60多天了,好多小伙伴都已经可以领取第一波奖励:技术书籍了,上周好多小伙伴私信码仔,问都有哪些技术书籍,码仔今天就给大家列了个书单供大家选择: 01 Android软件安 ...
- golang mysql连接池原理_[Go] golang实现mysql连接池
golang中连接mysql数据库,需要使用一个第三方类库github.com/go-sql-driver/mysql,在这个类库中就实现了mysql的连接池,并且只需要设置两个参数就可以实现 一般连 ...
最新文章
- Thrift的服务器和客户端Python案例
- python 程序打包成 exe 文件
- Python初学者请注意!别这样直接运行python命令,否则电脑等于“裸奔”
- 基于Python编写的简易翻译器
- 【Python】青少年蓝桥杯_每日一题_3.19_约分
- Java中的out.write()和out.print()的区别
- 对着爬虫网页HTML学习Python正则表达式re
- 变量和简单数据类型(一)
- USB 3.1 与 Type-C 接口有什么关系呢
- 测试(一)试题及答案
- 博客园修改TinyMCE编辑器为Markdown编辑器的方法
- faster RCNN 与 fast RCNN 一分钟回忆图
- android让字体左右对齐,Android 实现文字左右对齐
- 无法安装visual studio code,snap vscode has install-snap change in process
- DotNetTools Workflow教程
- Ubuntu windows双系统没有引导界面的解决办法
- 电容或电感的电压_电流,电压,电阻,电容和电感
- The following packages have unmet dependencies: build-essential : Depends: libc6-dev but it is not
- 【转】五分钟理解什么是接口
- 千年3+db服务器修改无效,《千年3》2019年1月服务器互通公告