华为数据库产品规划李元佳 - Postges-x2分布式数据库的介绍
2020-02-27 90浏览
- 1.Postgres-X2介绍 李元佳
- 2.自我介绍
- 3.目录 背景介绍 Postgres-X2的架构及技术 测试及性能结果 其他
- 4.
- 5.Postgres的简介 • 开源的RDBMS • 功能丰富 – 完整SQL、事务、存储过程、同步复制 • 企业应用领域比较多 • 国内案例 – 去哪儿、平安科技、国家电网等
- 6.
- 7.流复制 Master 同步 streaming Slave (Sync) streaming • synchronous_commit – on, remote_write, local, and off Slave (Async)
- 8.数据零丢失+高性能 高可用问题已经解决
- 9.Sharding:postgres_fdw
- 10.高扩展呢?
- 11.分布式数据库 – 面向大数据量、高并发的OLTP场景 – 多主多读、横向扩展 – 全功能关系型数据库(ACID、SQL几乎无限制) 全功能 + 高扩展
- 12.Postgres-XC/XL
- 13.Postgres-XC/XL简介 • 开源 – Postgres-XC采用Postgres协议(类似BSD协 议) – Postgres-XL以前是Mozzila协议,目前已经 改为PostgreSQL协议 • 面向OLTP及OLAP场景 • 采用Share-Nothing架构、弹性扩展 • 基于Postgres改造、功能几乎完全继承
- 14.社区发展历史 • 2004~2008 NTT Data构建了模型RitaDB • 2009年 NTT Data与EnterpriseDB合作进 行社区化开发 • 2012, Postgres-XC 1.0正式发布 • 2012, StormDB在XC基础上增加MPP功能. • 2013, XC 1.1发布; TransLattice 收购 StormDB • 2014, XC 1.2发布; StormDB 开源为 Postgres-XL. • 2015, 两个社区合并为Postgres-X2
- 15.
- 16.
- 17.目录 背景介绍 Postgres-X2的架构及技术 测试及性能结果 其他
- 18.设计理念 高扩展 全功能 强一致性 • Share nothing 架构 • 功能解耦、分层扩展 • 数据分散在多个节点 • 继承Postgres功能 • 继承Postgres生态 • SQL能力不受限制 • 支持存储过程 • MVCC • 全局事务支持强一致
- 19.Postgres的架构 interface Postgres parser system 应 catalog 用 planner executor storage transact ion disk
- 20.架构的解耦及分布式化 分布式执行层 数据存储层 应 interface parser global catalog SQL/执行计划 interface parser 用 planner system catalog planner system catalog executor 分布式化 transact ion executor storage transact ion global transactio n disk
- 21.Postgres-XC的整体架构 AP AP PP AP P Load balancer 全局事务节点 GTM CNode CNode CNode DNode DNode DNode DNode 协调节点层 数据节点层 可以横 向扩展
- 22.Postgres-XC主要的模块 • Coordinator node:协调节点 – 负责接收用户请求、生成并执行分布式查询、 把SQL语句发给相应的数据节点 • Data node:数据节点 – 实际数据存储节点 • GTM:全局事务节点 – 生成全局唯一的事务ID – 全局的事务的状态 – 序列等全局信息
- 23.关键模块之间的关系
- 24.数据如何分布 Insert into t values(30) C-node Global catalog locat or C-node Dnode 1,5,9,13 Dnode 2,6,10,14 30 Dnode Dnode 3,7,11,15 4,8,12,16
- 25.数据分布方式 • replicated table 复制表 – 表在多个节点复制 • distributed table 分布式表 – Hash – Round robin – Range(未实现) – User define (未实现)
- 26.分布式查询优化 • Parallel query • Where pushdown • Join pushdown • Expression pushdown • Order by • Two phase Aggregate • Fast query shipping
- 27.单一节点处理
- 28.单一节点处理
- 29.多节点处理
- 30.MPP方面的优化 • 数据节点间的数据传输 – 原来的Postgres-XC的D-Node间不能传数据 – 数据需要汇聚到C节点进行处理 – Postgres-XL允许D-Node间进行数据传输 • 执行计划.VS. SQL语句 – C-node D-node XC发送SQL语句,XL 发送执行计划 Postgres-XL
- 31.事务处理:2PC就可以了吗?
- 32.GTM全局事务状态的处理
- 33.高可用的设计-D-Node Master D-Node D-Node D-Node HAStreaming replication HA HA Slave D-Node D-Node D-Node
- 34.高可用的设计-GTM
- 35.为什么可以处理混合负载 • OLTP – 强事务一致性 – 多主节点可以应付高并发 – 全功能 • OLAP – 多节点并行处理、Share nothing – MPP
- 36.目录 背景介绍 Postgres-X2的架构及技术 测试及性能结果 其他
- 37.基准测试模型 • DBT-1是TPC-W的开源版 – 模拟网店的在线交易 – 主要行为为用户浏览网站、网上购物: primarily shopping (WIPS), browsing (WIPSb) 以及 web-based ordering (WIPSo). • DBT-3是TPC-H的开源版 – 数据仓库
- 38.DBT-1的表结构
- 39.硬件拓扑结构
- 40.OLTP的测试性能
- 41.性能基本可以线性扩展
- 42.TPC-H的性能
- 43.应用场景 • 大规模OLTP应用,尤其是企业领域 • 云环境下的弹性伸缩 • OLTP及OLAP混合负载 • 详单查询 • ODS •…
- 44.目录 背景介绍 Postgres-X2的架构及技术 测试及性能结果 其他
- 45.相关的资料 •https://github.com/postgres-x2/•http://www.postgres-xl.org/
- 46.谢谢 galylee@gmail.com