1、TDSQL-CforPG主从架构优化演讲人:邹立贤腾讯云1.TDSQL-CforPG整体架构2.TDSQL-C for PG 主从架构3.TDSQL-C for PG 优化4.展望1.TDSQL-C for PG 整整体体架架构构为什么需要TDSQL-C传统数据库在云上存在问题TDSQL-C解决思路资源利用率低扩展能力不足资源规划难备份难计算存储分离 计算资源弹性调度能力日志下沉以及异步回放 减少网络IO共享分布式存储 资源弹性扩展后台持续日志备份PostgreSQL主实例CynosStoreAgentPostgreSQL读实例CynosStoreAgentStorageNodeStorage
2、NodeStorageNodeCynosStore集群管理服务对象存储写日志读页面读页面日志下沉核心架构设计日志异步回放多版本读(同步)TDSQL-CforPG架构 backend日日志志buffer日日志志发发送送Replica日志异步写入日志并行插入日志写入buffer,再写入存储日日志志链链日日志志合合并并数据原子修改(MTR)MTR(Minimal Transaction Record)CynosStoreAgentCynosStore ClientbackendCynosStore ClientbackendCynosStore ClientPostgreSQL日志下沉、异步回放日日
3、志志CynosStoreVDL(Volume Durable LSN)CPL(Consistency Point LSN)TDSQL-CforPG架构TDSQL-CforPG主机优化不必依赖 CheckPoint 机制不必在存储日志中记录全页(FPW)快速启动系统,无需恢复大量日志批量并行发送日志到存储日志合并压缩,进一步减少日志IOTDSQL-CforPG主机优化批量并行发送日志到存储Storage NodeStorage NodeStorage NodeCynosStore日志Buffer并行发送日志日志包2.TDSQL-C for PG 主主从从架架构构传统主备模式的问题横向扩展读能力提
4、升数据库的可用性多读(Replica)优势创建新备需要拷贝数据:额外存储资源备机切换和启动需要恢复日志:慢PostgreSQLmasterPostgreSQLstandbyXLOG传统PostgreSQL主备模式仍有缺点冲突导致的日志延迟等TDSQL-C for PG 主主从从架架构构TDSQL-C for PG主从架构Journal SenderJournal SenderJournal Sender日日志志bufferJournal Receiver日日志志buffer合合并并的的日日志志接接收收到到的的日日志志运运行行信信息息运运行行时时内内存存:事事务务列列表表,锁锁等等数数据据Buf
5、ferJournal Apply1.nPostgreSQL(RO)DB EngineCynosStore AgentCynosStore AgentDB EnginePostgreSQL(RW)Block-Journal HTAB页面不在内存,跳过日志合并PostgreSQL(RO)PostgreSQL(RO)journal多个读节点、并行日志恢复3.TDSQL-C for PG 优优化化传统PostgreSQL恢复过程Startup进程从XLOG文件中读取日志页面是否在bufferpool中恢复XLOG从数据文件中读取Pagewalreceiver收到XLOG写入XLOGFilejourna
6、lreceiver收到日志写入journalbuffer日志追加线程将日志插入到Block-journalHashTable页面是否在bufferpool中合并日志跳过日志日志Apply线程遍历hash表获取日志TDSQL-C for PGYYNNTDSQL-C for PG从机优化TDSQL-C for PG 从机优化A(11)B(17)C(15)D(9)LSN9数据页面MergeProcVDL:17VDL:19VDLMergeProc并行合并日志1012181619TDSQL-C for PG从机优化Postg