董红亮 中国银联开源数据库实践之路

剑仙

2019/03/25 发布于 技术 分类

文字内容
1. 数据库年终盘点大会-上海站 中国银联开源数据库实践之路 董红亮
2. 积极尝试 开源产品 需求驱动 定制开发 配套产品 体系建设 自动化运维 平台搭建 未来发展 路线规划
3. 1 2013 2012 ~2011 二代系统建设 完成(DB2) 开始MySQL 论证和测试 首个MySQL 实例上线
4. 2 如何与原密码服务器结合,实现密码统一管理 如何解决不同场景并发的问题 如何提高复制的性能
5. 积极尝试 开源产品 需求驱动 定制开发 配套产品 体系建设 自动化运维 平台搭建 未来发展 路线规划
6. UPSQL 安全增强 功能扩展 MySQL 性能提升 运维工具 复制优化 UPSQL UPSQL是中国银联在开源的MySQL 数据库社区版基础上,根据银联业 务特点定制开发的数据库产品。
7. DBPM认证插件 DBPM Server ❖ 应用程序和数据库均不保存密码 App mysql.user表 dbpm 认证插件 ❖ 密码统一存放在DBPM服务器,方便定 期修改 ❖ 应用程序和数据库均从DBPM服务器获 取密码,由认证插件完成认证
8. 国密SM3算法认证插件 明文 明文 sha1 sm3 stage1 stage1 sha1 sm3 stage2 stage2 hex hex 密文 mysql .user 密文 mysql .user
9. 客户端库负载均衡 App 客 户 端 库 host = loadbalance://[host1][:port1],[host2][:port2]...
10. 多队列并发控制 简单查询 复杂查询 ❖ 对查询请求和事务请求进行分类 ❖ 对不同请求类型设置最大并发数 ❖ 并发数超过阈值进入等待队列 简单事务 复杂事务 ❖ 可设置等待超时时间 ❖ 支持不受限用户白名单
11. 他山之石 ❖ 从Percona引入线程池功能 ❖ 将MySQL-5.7复制改进反向port至MySQL-5.6 - 基于组提交的多线程复制(MTS) - 减少主库dump线程对binlog文件的锁竞争 - 半同步复制增加异步ACK接收线程 - 多源复制(MSR)
12. 默认线程调度方式下性能曲线 未开启线程池性能 12000 10000 4C TPS 8000 8C 12C 6000 16C 20C 4000 24C 28C 2000 32C 0 32 64 128 256 512 并发连接数 1024 2048 4096 8192
13. 线程池性能曲线 开启线程池性能 12000 10000 TPS 8000 thread_pool_size=24 6000 thread_pool_size=32 thread_pool_size=64 4000 thread_pool_size=128 2000 0 32 64 128 256 512 1024 并发连接数 2048 4096 8192 16384
14. 复制性能对比 MySQL-5.6、UPSQL-1.0、MySQL-5.7在三种复制架构下性能对比 16000 14000 MySQL-5.6 主从异步 MySQL-5.6 主从半同步 MySQL-5.6 主主半同步 UPSQL-1.0 主从异步 UPSQL-1.0 主从半同步 UPSQL-1.0 主主半同步 MySQL-5.7 主从异步 MySQL-5.7 主从半同步 MySQL-5.7 主主半同步 12000 TPS 10000 8000 6000 4000 2000 0 主库 主从异步 - 主从半同步 - 主主半同步 从库
15. 热点relay-log文件锁优化 SQL线程 IO线程 hot relay-log SQL线程 IO线程 SQL线程 IO线程 hot relay-log
16. 主主复制日志过滤 ❖ 优化前,ev_s1需回传至M1,然后被IO线程丢弃 ❖ 优化后,在M2上即完成日志过滤,避免不必要 的回传,节约带宽 ev_s1 ❖ 在主主半同步复制场景减少一次ACK等待 M1 M2 ❖ M2日志位点更新通过心跳事件通知M1
17. 其他功能点 01 复制容错处理 02 多源复制支持半同步插件 03 热点数据更新自动提交 04 无效链接自动清理 表碎片统计和自动整理 05 动态增加字段 06 Binlog闪回工具 07 ...... 08
18. 3 如何解决数据库高可用问题 如何实现读写分离、数据拆分 如何将数据同步至数据仓库
19. 积极尝试 开源产品 需求驱动 定制开发 配套产品 体系建设 自动化运维 平台搭建 未来发展 路线规划
20. UPSQL-Proxy 高可用 数据拆分 读写分离 分布式事务 连接池 负载均衡 支持Prepare UPSQL-Proxy是一个位于应用和 数据库之间对应用透明的轻量级 数据库代理软件;用于解决数据 库高可用、读写分离以及数据拆 分等问题。 ......
21. UPSQL-Proxy部分功能
22. UPSQL-Proxy典型应用场景 proxy App 客 户 端 库 Master ❖ 数据库自动切换 ❖ 用户级别和语句级读写分离 adm-svr ❖ 多用户不同数据库共享Proxy集群 proxy Standby
23. UPSQL-Proxy典型应用场景 proxy App 客 户 端 库 shard1 shard2 shard3 shard4 Master Standby datanode1 adm-svr proxy shard1 shard2 shard3 shard4 ❖ 数据拆分 ❖ 分布式事务 shard5 shard6 shard7 shard8 Master shard5 shard6 shard7 shard8 Standby datanode2
24. UPSQL-Mover 解析binlog App binlog 组报文 Call API 大 数 据 平 台 UPSQL-Mover通过解析 MySQL/UPSQL的binlog将数据 同步至大数据平台。
25. 4 如何解决数据库资源问题 如何高效运维大规模数据库
26. 积极尝试 开源产品 需求驱动 定制开发 配套产品 体系建设 自动化运维 平台搭建 未来发展 路线规划
27. 容器化 ❖ 容器性能损耗更小 容器 VS 虚拟机 ❖ 快速部署 ❖ 方便迁移 ❖ 敏捷管理
28. DBaaS 服务 UPSQL UPRedis .... 实例管理 配置管理 监控管理 ❖ 快速服务 ❖ 资源弹性 管理 健康检测 批量运维 ❖ 规模运维 灾备管理 ❖ 安全可靠 资源管理 资源 A中心 主机 存储 弹性调度 网络 ... .... 主机 存储 网络 ... B中心
29. 5 各产品未来的开发计划
30. 积极尝试 开源产品 需求驱动 定制开发 配套产品 体系建设 自动化运维 平台搭建 未来发展 路线规划
31. 开发计划 UPSQL-Proxy UPSQL 01 • • • • • 复制延迟数据保护 视图性能优化 审计插件引入 TokuDB存储引擎引入 ...... 02 UPSQL-Mover 03 • 由独立部署改造为集群 化部署,建设成 binlog-server,支持 更多后端 • • • • • 分布式管理集群 支持MGR SQL解析优化 动态扩容缩容 ...... DBaaS 04 • 支持Redis、 MongoDB
32. THANK YOU!