欢迎来到天天文库
浏览记录
ID:42427260
大小:577.52 KB
页数:9页
时间:2019-09-14
《CynosDB技术详解——架构设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、前言CynosDB是新一代分布式数据库,100%兼容MySQL和PostgreSQL,支持存储弹性扩展,一主多从共亨数据,性能更是超越社区原生MySQL和PostgrcSQL。CynosDB采用sharestorage架构,其弹性扩展和高性价比的基石则是CynosDBFileSystem(简称CynosFS):一款腾讯云自研的用户态分布式文件系统。本文旨在从整体上讲述CynosDB和CynosES的核心架构设计。挑战与应对CynosDB是公有云原生架构的,英核心思想是在资源池化的基础上实现公有云高性价比、高可用性以及弹性扩展等诸多优势。实现资源池化的最
2、大技术挑战是高效、稳定的弹性调度能力,该能力也是公冇云产品高可用性的基石。计算、网络和存储是公有云三大类has产品,前血两类都有比较成熟的弹性调度架构,唯独存储产品例外。究其根本还是数据调度的代价太高。数据库是典型的计算+存储的产品,要做到资源池化需要:1存储与计算分离:这样计算资源(主要包含CPU和内存)就可以使用现冇成熟的容器、虚拟机等技术实现资源池化1分布式存储:将数据分割成规格化的块,引入分布式调度系统,实现存储容量和10的弹性调度,从而实现存储资源的池化那么对于数据库产品来说,是否有现成架构可以很好的满足以上两个需求呢。我们发现虚拟机+分布式
3、块存储(云盘)的方案非常合适,H前主流公有云平台也都有非常成熟的产品。腾讯云今年早些时候推出的MySQL基础版以及AWS上的RDS都是基于这种架构。图1简单描述了这种架构:但该架构有如卜•不足:1网络io重:可以看到就1个数据库实例,就有大量数据需要写到云盘,这些数据主要包括:WALLOG.页数据、防止页部分写的DoubleWrite或者FullPageWrite。除此之外,云盘还要将这些数据做多个备份1主从实例不共享数据:一方血浪费了大量存储,另一方血进一步加重了网络10这些不足导致基于该架构的数据库产品在系统吞吐能力上无法与基于物理机部署的主从架构
4、竞争,而且延迟也受到很大的挑战,这对OLTP类业务的影响非常明显。同时每个数据库实例都单独拥有--份(实际可能是2-3份)存储,成本也很高。CynosDB针对这两个不足,采用了如下设计:1日,忐下沉:WALLOG从逻辑上己经包含了数据的所有变动,CynosDB将林I.I.0G下沉到存储层,数据库实例就只需要将WAIA0G写到存储层,不再需要写页数据(页数据以及DoubleWrite或FullPagoWrite),同吋这个WALLOG也作为RAFT协议的日志来完成多个数据备份的同步,进-步减少了网络10。1主从实例共享数据:CynosDB的主从实例共享共
5、一份存储数据,进一步减少了网络10,同时极大的减少了存储容量循着这两个解决思路,我们对传统基于云盘的架构进行优化,就有了CynosDB如卞架构:•••••••图2图中组件包扭h1DBEngine:数据库引擎•支持一主多从。IDistributedFileSystem:用户态分布式文件系统,主要提供分布式的文件管理,负责将文件的读写请求翻译为对应的BLOCK读写]LOG/BLOCKAPI:StorageService提供的读写接口,对于读写请求有不同处理:n写请求:将修改日志(等价于WALLOG)通过LOGAPI发送到StorageServicen读请求
6、:直接通过BLOCKAPI读取数据1DBCluster.Vkinager:负责一主多从DB集群的HA管理。IStorageService:负责日志的处理、BLOCK数据的异步回放、读请求的多版本支持等。同时还负责将WALLOG备份到ColdBackupStorageISegment(Seg):StorageService管理数据BLOCK和日志的最小单元(10GB),也是数据复制的实体。图中同样颜色的3个Seg实际存储同一份数据,通过一致性协议(Raft)进行同步,我们叫做SegmentGroup(SG)。IPool:多个SG从逻辑上构成一个连续的存储
7、数据BLOCK的块设备,供上层的DistributedFileSystem分配使用。Pool和SG是一对多的关系。IStorageClusterManager:负iffStorageService以及SegmentGroup的HA调度,以及维护Pool和SG的对应关系。IColdBackupService:接收到WALLOG后,进行增量备份,根据增量备份,可以灵活的生成全量备份和普异备份口J以看到,上面屮除了DBEngine和DBClusterManager外的所冇模块构成了一个L数据库引擎无关的用户态分布式文件系统,我们命名为:CynosFSo日志下
8、沉和异步回放这里CynosDB借鉴了AWSAurora论文中日志即数据库的思想,将WALLOG
此文档下载收益归作者所有