《阿里云RDS PostgreSQL内核技术分享(34页).pdf》由会员分享,可在线阅读,更多相关《阿里云RDS PostgreSQL内核技术分享(34页).pdf(34页珍藏版)》请在三个皮匠报告上搜索。
1、阿里云RDS PostgreSQL内核技术分享阿里云智能数据库高级技术专家 王欢阿里云蝉联Gartner全球数据库领导者象限总总纲纲介绍RDS PostgreSQL 解决用户痛点问题的方案思考和技术细节1.Logical Replication Slot Failover2.高并发场景审计日志(log_statement=all)优化3.智能索引推荐4.一键大版本升级5.SGX全加密数据库L Lo og gi ic ca al l R Re ep pl li ic ca at ti io on n S Sl lo ot t F Fa ai il lo ov ve er r 问问题题背背景景 R
2、eplication Slot 不会被复制到备库 HA后,Slot丢失,逻辑订阅中断 重新创建Logical Slot 导致部分增量丢失 Create Logical Slot 无法指定lsn主库备库slotslot is not synced解解决决方方案案slot create/drop/update 通过复制协议同步到备库难点 兼容性:WAL日志类型选用RM_XLOG_ID,新增1种 XLOG infoRM_XLOG_ID xlog_redo()对新增info处理保守 不认识的info,直接丢弃,不会FATAL。对用户自建replica、wal生态工具全兼容改改进进效效果果 s sl l
3、o ot t信信息息从从主主库库实实时时同同步步到到备备库库主库备库总总纲纲介绍RDS PostgreSQL 解决用户痛点问题的方案思考和技术细节1.Logical Replication Slot Failover2.高并发场景审计日志(log_statement=all)优化3.智能索引推荐4.一键大版本升级5.SGX全加密数据库高高并并发发场场景景审审计计日日志志(l lo og g_ _s st ta at te em me en nt t=a al ll l)优优化化背景:log_statement=all 所有执行过的SQL写入日志高安全要求业务:对所有SQL进行安全审计是强需求
4、问问题题1 1 高高并并发发时时性性能能下下降降16C64GB实例TPC-B只读 scale=100审计日志开启,在高并发时性能严重下降05000010000015000020000025000011664128高并发时性能下降审计日志关闭(log_statement=none)审计日志开启(log_statement=all)QPSactive conn问问题题2 2 高高并并发发时时S Sy ys sC Cp pu u高高 SysCpu高:高并发时,SysCpu 飙升到实例Cpu阈值的80+%。实例雪崩风险。问问题题原原因因分分析析 PG日志模型:backend进程向同一个pipe管道写入
5、日志SysCpu高:高并发pipe_write()带来的严重锁争抢backendbackendbackendbackendpipe管道syslogger优优化化 -高高并并发发p pi ip pe e_ _w wr ri it te e()带带来来的的严严重重锁锁争争抢抢方案:auditlog 从pipe管道旁路出去拆分单个日志文件到2个日志文件:syslog、auditlog;原有通过pipe传输syslog保持不变,新增通过 socketpair 来传输 auditlog;单个syslogger进程改为多个syslogger进程;加大缓冲区,采用全缓冲+定时的方式进行日志下刷,减少磁盘IO
6、次数;backendbackendbackendbackendpipe管道sysloggersyslogaudit logunix socket 1audit logunix socket 2syslogger1audit logsyslogger2优优化化效效果果05000010000015000020000025000011664128高并发时性能下降审计日志关闭(log_statement=none)审计日志开启(log_statement=all)-优化前审计日志开启(log_statement=all)-优化后审审计计日日志志优优化化后,性能与审计日志关闭时性能持平同时消除了SysC