CynosDB for PostgreSQL一主多读技术架构介绍_第1页
CynosDB for PostgreSQL一主多读技术架构介绍_第2页
CynosDB for PostgreSQL一主多读技术架构介绍_第3页
CynosDB for PostgreSQL一主多读技术架构介绍_第4页
CynosDB for PostgreSQL一主多读技术架构介绍_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CynosDB for PostgreSQL 一主多读架构内容CynosDB for PostgreSQL架构CynosDB for PostgreSQL关键设计CynosDB for PostgreSQL一主多读架构为什么需要CynosDB传统数据库在云上面临的问题资源利用率低扩展能力不足资源规划难备份难CynosDB解决思路计算存储分离:计算资源弹性调度能力日志下沉以及异步回放:减少网络IO共享分布式存储:资源弹性扩展后台持续日志备份CynosDB for PostgreSQL架构Storage NodeStorage NodeStorage NodeCynosStore集群管理服务对象存

2、储写日志PostgreSQL主实例 CynosStore Client读页面PostgreSQL读实例 CynosStore Client读页面CynosDB - 云原生数据库核心架构设计日志下沉日志异步回放多版本读(同步)CynosDB for PostgreSQL架构 - 关键设计日志buffer日志发送Replica日志并行插入日志异步写入日志写入buffer日志链日志合并数据原子修改(MTR)MTR(Minimal Transaction Record)CynosStore ProcessbackendCynosStore ClientbackendCynosStore Clientb

3、ackendCynosStore ClientPostgreSQL日志下沉、异步回放日志CynosStoreVDL(Volume Durable LSN)CPL(Consistency Point LSN)日志回收最小读点(Minimal Read Point LSN)CynosDB for PostgreSQL架构 - 关键设计多版本读(同步)RPL(Read Point LSN)任何一个VDL都可以是一个RPL202530405030页面ARead(A,30)50Read(A,50)MRPL=30日志回收一主多读提升数据库的可用性多读(Replica)优势横向扩展读能力传统主备模式的问题创

4、建新备需要拷贝数据: 额外存储资源PostgreSQL masterPostgreSQL standbyXLOG传统PostgreSQL主备模式仍有缺点备机切换和启动需要恢复大量日志:慢收到日志需要写磁盘:慢解决BufferPinLock冲突一主多读 - 架构DBCynosStore ProcessCynosStore ProcessBlock Journal ListJournal Bufferjournal 、运行信息、FSMMinXid、MRPLDBData BufferJournal ApplyPostgreSQL(RW)PostgreSQL(RO)Replica本地不存储数据Repi

5、ca并行恢复日志,不落盘COSFSM备份FSM到COS,备份配置文件到CynosStore核心架构设计CynosStore扩展系统读能力、快速主备切换Repica多版本数据Buffer本地存储本地存储Journal SenderJournal SenderJournal Sender日志buffer持久化的日志Journal Receiver日志buffer合并的日志接收到的日志运行信息运行时内存:事 务列表,锁等数据BufferJournal Apply1.nPostgreSQL(RO)DB EngineCynosStore ProcessCynosStore ProcessDB Engin

6、ePostgreSQL(RW)Block - Journal HTAB页面不在内存,跳 过日志合并PostgreSQL(RO)PostgreSQL(RO)journal多个读节点、并行日志恢复一主多读 - 架构一主多读 - 架构DB EngineCynosStore ProcessBlock - Journal HashTable日志Buffer日志接收线程日志合并线程提供多版本读获取RPL获取某版本Buffer Page更新运行信息、Buffer锁相关分配BufferCynosStore Process实现连接管理、日志管理DB与CynosStore接口简单DB无需关心日志管理、合并数据Bu

7、ffer Pool传统PostgreSQL恢复数据Buffer过程一主多读 - 架构walreceiver收到XLOG写入XLOG FileStartup进程从XLOG文件中读取日志跳过日志journal receiver收到日志 写入journal buffer日志追加线程将日志插入到Block- journal Hash Table日志Apply线程遍历hash表读 取小于RPL的日志CynosDB for PG页面是否 在bufferpool中Y恢复XLOG页面是否在buffer pool中(调用DB回 调)Y合并日志从数据文件中 N读取PageN一主多读 - 读页面多版本数据Buffe

8、r:事务访问旧版本页面,日志回放与读事务互相不阻塞backendPage A101520100backendDB EngineCynosStore ClientA.Apply以较新版本为基础合并日志,快速返回请求页面B10152030CynosStore一主多读 - 读页面BAPPABA原子性:Repilca按照MTR粒度进行访问页面,保证对象结构完整以索引页面分裂为例MTR一主多读 - 切换传统PostgreSQL切换过程:PostgreSQL StandbyXLogStartup ProcessWalReceiver Process收到切换信号Startup Process退出处理写事务1

9、2 关闭WalReceiver Process3 恢复完当前收到的日志、写checkpoint45一主多读 - 切换CynosDB主实例CynosDB备实例CynosDB备实例CynosDB读实例CynosDB读实例CynosDB读实例CynosDB读实例读实例仅仅参与读事务请求HA组RO组HA组中的备实例参与主备切换备机切换不需要恢复大量日志CynosDB秒级切换恢复点:LSN=1000100100ReplayXLog数据文件数据Buffer传统PostgreSQL备机的启动传统备机启动需要恢复到MinRecoveryPoint才能到一致状态CynosDB Replica启动需要一个持久化的RPL即可5050MinRecoveryPoint=50MinRecoveryPoint=1000Flush Buffer一主多读 - 启动一主多读 - 防止多写旧主100新主

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论