您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[腾讯]:云数据库PostgreSQL在SaaS场景的方案解析 - 发现报告
当前位置:首页/其他报告/报告详情/

云数据库PostgreSQL在SaaS场景的方案解析

2024-09-13腾讯严***
云数据库PostgreSQL在SaaS场景的方案解析

PGSQL关于SaaS解决方案剖析 主讲人:李晓慧 目录 01 02 PostgreSQL产品介绍关于SaaS解决方案介绍 03 产品roadmap 产品介绍 云数据库PostgreSQL产品整体架构 读写请求 冷备中心 业务应用 VIP-M 日志归档 物理备份 实例集群 强同步/异步步 TP读请求 主节点 备节点 同可用区或 跨可用区 异步async 只读实例组 VIP-RO组 只读实例1 只读实例2 … … 只读实例3 VIP-RO1 VIP-RO2 VIP-RO3 AP读请求 节点:包含主节点和备节点,是独立的数 据库进程。 主实例:一个独立的数据库。包含主节点 和备节点。主实例能接收应用读写请求。 只读实例:只读实例只能接收读请求。一个主实例支持6个只读实例。 一个实例可以支持跨可用区级容灾能力 支持多个PostgreSQL版本的兼容,最高到PG16 SaaS使用场景介绍 SaaS软件租户的部署模式 DBb DBd tenanta 租户独享实例 每个租户独占一个PG实例 ,租户隔离强,但成本高。适用于租户规模大的业务。 DBa tenanta DBb tenantb 租户独享database 每个租户独占一个database,租户数据完全隔离,急需租户资源隔离。成本可控。 schemaatenanta schemab tenantb DBa 租户独享schema 每个租户独占一个schema ,成本可控,租户可共享一套基础信息,但租户数据无法完全隔离。 tenanta data tenantb data schema DBa 租户共享所有资源 租户数据在数据表中,成本低,但是没有资源隔离性。 PG关于SaaS解决方案概览 业务系统 数据库 文件系统 现状 租户1租户2租户3 访问控制 安全规则 数据落地 明文存储 痛点问题 租户使用无法监控多系统频繁数据搬迁逻辑复制槽切换后丢失 租户数据被篡改数据混合,无隔离数据过多,成本高 文件窃取,数据泄露 云数据库PG方案 提供进程监控方案实时快速数据迁移逻辑复制槽故障转移 数据库审计database资源隔离冷热数据分离 透明数据加密 database资源隔离 PostgreSQL体系结构: 多进程架构; 每个连接对应一个backend进程; 利用Cgroup进行资源控制: 构建资源对象层级: instance/database/schema/table 管理对象资源配额: cpu.shares:控制使用cpu资源的下限cpu.cfs_quota_us:控制使用cpu资源的上限 资源访问绑定到该对象控制器: 将访问资源的backend进程attach到所属资源控制器的procs中 元信息存储: 内核提供tencentdb_serverless插件; 新增tencentdb_serverless.resource_limit表管理配额元数据; cgrouproot instance1 instance2 Ins-levelcgroup database db1 schema db2 schema database-levelcgroup schema-levelcgroup table table table-levelcgroup … table table 基于对象层级的资源控制 租户进程监控 SELECT*FROM tencentdb_cpu_memory_usage SELECTtencentdb_sys_usage(); 获取当前实例进程列表 计算每个进程CPU和内存使用率 JOINpg_stat_activity获取更多信息 返回视图结果 统计指定时间内各进程CPU的使用率(相对于单核) 统计指定时间内各进程内存的使用量(单位Byte) 通过GUC参数来设置每次采样的时长 (tencentdb_system_stat.sampling_interval) 提供tencentdb_process_system_usage视图供用户查询,可按照database/ 进程/用户分类 实时监控SQL运行 实时辅助业务决策 租户SQL审计 日志 pg_log文件夹 pg_audit_log文件夹 错误日志 操作成功 慢日志 操作记录 普通日志 操作失败 原生日志 审计日志 语法错误 执行错误 进程被kill …… 我们的优势: 1.提供审计极速版和审计精细版,极速版会比精细版少一些字段,无法审计出 SQL类型、对象类型、对象名信息。 2.在CPU消耗不大时,极速审计性能消耗在5%以内,精细审计性能消耗在10%以内。 3.审计日志与原生日志分流,不占用实例存储空间,同时保证高可读性和高性能。 4.提供了更全的字段信息。 审计性能测试(QPS) 400000 350000 300000 250000 200000 150000 100000 50000 0 16 32 审计极速版 64 审计精细版 128256 原生log_statement=all 不开审计 开启log_statement的问题: 1.在审计信息不全,缺少操作对象、操作类型,执行时长等信息(在语句执行 前打印); 2.开启审计log_statement=all后,高并发场景下对性能有较大影响; 3.没有将日志文件分流,慢日志、错误日志、审计日志都打印在同一个日志文件中 租户迁移与同步 方案优势: 单任务支持Database或者schema级别的全量和增量迁移 同时可以并行多个任务 迁移过程中源库可以有业务写入,对业务的影响最小 支持断点续传,能应对迁移过程中的异常情况 传输性能高,单个任务最高7000+的RPS 支持非superuser账号来配置迁移任务进行角色迁移 网络代理 源数据库 PostgreSQL NodeServer 统一日志存储 NodeServer 目标数据库 PostgreSQL 数据导入 数据订阅 全量导出 迁移校验 增量导出 冷热数据分离 主实例 salve 主实例 salve 主实例 salve master master master 只读实例 只读实例 只读实例 cos_t.csv 1,a 2,b 数据库实例 冷数据存储 应用 插件 开始查询 并行框架 拉起进程 发送请求 处理数据 传输数据 PostgreSQL 接收请求 COS 利用PG原生的FDW机制,将COS 上的csv文件当作外部表处理。 通过插件访问冷数据存储,应用不需要修改SQL。 通过网络与COS进行交互,流式传输数据。 将租户数据分为冷数据和热数据,最高性价比提升SaaS租户服务能力。 产品roadmap 产品roadmap 2024.9 2024.102024.112024.12 支持多种模式下的 SQL限 冷热数据分离支持SR 支持叠加备份策略 pglogical插件支持更 多场景 支持任务列表及详情 支持PostgreSQL17 支持CPU弹性扩缩容 支持索引推荐 THANKS