 Greenplum分布式事务和两阶段提交协议项目 全新的问答论坛 分布式事务和 两阶段提交协议 6 ● 事务实现原理和Write Ahead Logging(WAL) ● 分布式事务和两阶段提交的原理 ● Greenplum两阶段提交协议的实现 ● Greenplum两阶段提交协议的优化 Outline 7 事务的属性:ACID 属性 含义 数据库系统的实现 Atomic 原子性 事务中的操作要么全部正确执行,要么完全不 执行。 Write Ahead Logging,分布式事务:两阶段提交协议 Consistency 一致性 数据库系统必须保证事务的执行使得数据库 从一个一致性状态转移到另一个一致性状态。 (满足完整性约束) 实现对A、I、D三个属性的支持 Isolation 隔离性 多个事务并发地执行,对每个事务来说,它并 不会感知系统中有其他事务在同时执行。 多版本并发控制Multi-Version 2PL)、乐观并发控制 (OCC) Durability 持久性 一个事务在提交之后,该事务对数据库的改变 是持久的。 Write Ahead Logging + 存储管理 Jim Gray于1981年VLDB描述了事务的原子性、一致性和持久性,在此基础上,Haerder和Reuter在1983年中提出了事务的隔离性并提出术语 “ACID”,自此,事务的ACID四个性质成为业内标准术语 8 Disk-Oriented0 码力 | 42 页 | 2.12 MB | 1 年前3 Greenplum分布式事务和两阶段提交协议项目 全新的问答论坛 分布式事务和 两阶段提交协议 6 ● 事务实现原理和Write Ahead Logging(WAL) ● 分布式事务和两阶段提交的原理 ● Greenplum两阶段提交协议的实现 ● Greenplum两阶段提交协议的优化 Outline 7 事务的属性:ACID 属性 含义 数据库系统的实现 Atomic 原子性 事务中的操作要么全部正确执行,要么完全不 执行。 Write Ahead Logging,分布式事务:两阶段提交协议 Consistency 一致性 数据库系统必须保证事务的执行使得数据库 从一个一致性状态转移到另一个一致性状态。 (满足完整性约束) 实现对A、I、D三个属性的支持 Isolation 隔离性 多个事务并发地执行,对每个事务来说,它并 不会感知系统中有其他事务在同时执行。 多版本并发控制Multi-Version 2PL)、乐观并发控制 (OCC) Durability 持久性 一个事务在提交之后,该事务对数据库的改变 是持久的。 Write Ahead Logging + 存储管理 Jim Gray于1981年VLDB描述了事务的原子性、一致性和持久性,在此基础上,Haerder和Reuter在1983年中提出了事务的隔离性并提出术语 “ACID”,自此,事务的ACID四个性质成为业内标准术语 8 Disk-Oriented0 码力 | 42 页 | 2.12 MB | 1 年前3
 Greenplum Database 管理员指南 6.2.1................................................................................... - 86 - 转移临时文件或事务文件的位置 ............................................................................ - 87 - 创建表空间 .. .................... - 171 - 使用事务.......................................................................................................................... - 171 - 事务隔离级别 ........................... /镜像,按照惯例将其称为 Standby。在 Master 不可用时,Standby 可以被激活以 接替 Master 的角色。Standby 与 Master 之间保持 WAL 同步,保证与 Master 之 间的实时一致性。 在 Master 失效时,WAL 同步的复制进程会自动停止,同时,Standby 可以被激 活。在 Standby 上,冗余的 WAL 日志会被用来将状态恢复到最后成功提交(commit)0 码力 | 416 页 | 6.08 MB | 1 年前3 Greenplum Database 管理员指南 6.2.1................................................................................... - 86 - 转移临时文件或事务文件的位置 ............................................................................ - 87 - 创建表空间 .. .................... - 171 - 使用事务.......................................................................................................................... - 171 - 事务隔离级别 ........................... /镜像,按照惯例将其称为 Standby。在 Master 不可用时,Standby 可以被激活以 接替 Master 的角色。Standby 与 Master 之间保持 WAL 同步,保证与 Master 之 间的实时一致性。 在 Master 失效时,WAL 同步的复制进程会自动停止,同时,Standby 可以被激 活。在 Standby 上,冗余的 WAL 日志会被用来将状态恢复到最后成功提交(commit)0 码力 | 416 页 | 6.08 MB | 1 年前3
 Greenplum 精粹文集目录下的各个第三方模块,在 GP 中的 postgis 空间 数据库、R、Madlib、pgcrypto 各类加密算法、gptext 全文检索都 是通过这种方式实现功能扩展的。 4) 在诸如 ACID 事物处理、数据强一致性保证、数据类型支持、独特 的 MVCC 带来高效数据更新能力等还有很多方面,Postgresql 似 乎在这些 OLAP 功能上都比 mysql 更甚一筹。 5) Postgresql 许可是仿照 据库实例同时开展并行计算。而且,这些 Postgresql 之间采用 share- nothing 无共享架构,从而更将这种并行计算能力发挥到极致,除此之 外,MPP 采用两阶段提交和全局事务管理机制来保证集群上分布式事 务的一致性,Greenplum 像 Postgresql 一样满足关系型数据库的包括 ACID 在内的所有特征。 从上图可以看到,Greenplum 的最小并行单元不是节点层级,而是在 实例层级。安装过 最 后, 需 要 强 调 的 是:Greenplum 绝 不 仅 仅 只 是 简 单 的 等 同 于 “Postgresql+interconnect 并行调度 + 分布式事务两阶段提交”, Greenplum 还研发了非常多的高级数据分析管理功能和企业级管理模 块,如下这些功能都是 Postgresql 没有提供的: ·外部表并行数据加载 ·可更新数据压缩表 ·行、列混合存储0 码力 | 64 页 | 2.73 MB | 1 年前3 Greenplum 精粹文集目录下的各个第三方模块,在 GP 中的 postgis 空间 数据库、R、Madlib、pgcrypto 各类加密算法、gptext 全文检索都 是通过这种方式实现功能扩展的。 4) 在诸如 ACID 事物处理、数据强一致性保证、数据类型支持、独特 的 MVCC 带来高效数据更新能力等还有很多方面,Postgresql 似 乎在这些 OLAP 功能上都比 mysql 更甚一筹。 5) Postgresql 许可是仿照 据库实例同时开展并行计算。而且,这些 Postgresql 之间采用 share- nothing 无共享架构,从而更将这种并行计算能力发挥到极致,除此之 外,MPP 采用两阶段提交和全局事务管理机制来保证集群上分布式事 务的一致性,Greenplum 像 Postgresql 一样满足关系型数据库的包括 ACID 在内的所有特征。 从上图可以看到,Greenplum 的最小并行单元不是节点层级,而是在 实例层级。安装过 最 后, 需 要 强 调 的 是:Greenplum 绝 不 仅 仅 只 是 简 单 的 等 同 于 “Postgresql+interconnect 并行调度 + 分布式事务两阶段提交”, Greenplum 还研发了非常多的高级数据分析管理功能和企业级管理模 块,如下这些功能都是 Postgresql 没有提供的: ·外部表并行数据加载 ·可更新数据压缩表 ·行、列混合存储0 码力 | 64 页 | 2.73 MB | 1 年前3
 Greenplum备份恢复浅析zwj@alibaba-inc.com 公司:阿里云 2017 年象行中国(杭州 站)第一期 Greenplum数据备份恢复: 1. 数据量较大 2. 不能完全使用Xlog日志备份 3. 需要保证数据完整性和一致性 2017 年象行中国(杭州 站)第一期 Greenplum提供了: 1. 非并行备份和恢复: --pg_dump和pg_dumpall(pg_restore) --copy、psql 2 目前GP的并行备份,为了保证数据的一致性,有以下2步: 1. 给pg_class 加排他锁 2. 每个segment备份时设置隔离级别为串行化,保证每个 segment的数据一致性 但是,各个segment的数据设置隔离级别的动作存在时间差, 而master仍然接受新的事务,从而导致各个segment上的数 据不一致。我们可以通过实现barrier机制来避免这种情况: 1. 使数据库只读 2. 等待所有的事务全部提交,开始备份0 码力 | 17 页 | 1.29 MB | 1 年前3 Greenplum备份恢复浅析zwj@alibaba-inc.com 公司:阿里云 2017 年象行中国(杭州 站)第一期 Greenplum数据备份恢复: 1. 数据量较大 2. 不能完全使用Xlog日志备份 3. 需要保证数据完整性和一致性 2017 年象行中国(杭州 站)第一期 Greenplum提供了: 1. 非并行备份和恢复: --pg_dump和pg_dumpall(pg_restore) --copy、psql 2 目前GP的并行备份,为了保证数据的一致性,有以下2步: 1. 给pg_class 加排他锁 2. 每个segment备份时设置隔离级别为串行化,保证每个 segment的数据一致性 但是,各个segment的数据设置隔离级别的动作存在时间差, 而master仍然接受新的事务,从而导致各个segment上的数 据不一致。我们可以通过实现barrier机制来避免这种情况: 1. 使数据库只读 2. 等待所有的事务全部提交,开始备份0 码力 | 17 页 | 1.29 MB | 1 年前3
 Greenplum开源MPP数据库介绍©2022 VMware, Inc. 2 Agenda Ø Greenplum简介 Ø Greenplum的MPP架构 Ø 分布式优化器: Postgres planner 和 ORCA Ø 分布式事务和执行 Ø Greenplum存储 Ø Greenplum生态 Ø Greenplum 7 Confidential │ ©2022 VMware, Inc. 3 Greenplum简介:什么是Greenplum VMware, Inc. 7 执行架构 Interconnect Client Ø Coordinator: q 管理其它节点 q 生成分布式计划 q 下发计划和汇总结果 q 管理分布式事务 Ø Segments: q 存储数据,share-nothing q 产生计算进程 Ø Libpq:控制信道 Ø Interconnect: 数据交换信道 Confidential │ 数据的分布模式 Confidential │ ©2022 VMware, Inc. 12 分布式计划举例 Confidential │ ©2022 VMware, Inc. 13 分布式执行和事务 Ø 火山/流水线模型 Ø QD(query dispatcher)负责下发查询,QE(query executor)负责执行查询 Ø 查询的生命周期: 1) 客户端连接coordinator0 码力 | 23 页 | 4.55 MB | 1 年前3 Greenplum开源MPP数据库介绍©2022 VMware, Inc. 2 Agenda Ø Greenplum简介 Ø Greenplum的MPP架构 Ø 分布式优化器: Postgres planner 和 ORCA Ø 分布式事务和执行 Ø Greenplum存储 Ø Greenplum生态 Ø Greenplum 7 Confidential │ ©2022 VMware, Inc. 3 Greenplum简介:什么是Greenplum VMware, Inc. 7 执行架构 Interconnect Client Ø Coordinator: q 管理其它节点 q 生成分布式计划 q 下发计划和汇总结果 q 管理分布式事务 Ø Segments: q 存储数据,share-nothing q 产生计算进程 Ø Libpq:控制信道 Ø Interconnect: 数据交换信道 Confidential │ 数据的分布模式 Confidential │ ©2022 VMware, Inc. 12 分布式计划举例 Confidential │ ©2022 VMware, Inc. 13 分布式执行和事务 Ø 火山/流水线模型 Ø QD(query dispatcher)负责下发查询,QE(query executor)负责执行查询 Ø 查询的生命周期: 1) 客户端连接coordinator0 码力 | 23 页 | 4.55 MB | 1 年前3
 Greenplum资源管理器extended query • prepare/bind/execute libpq protocol • cursor • named portal – SQL结束不一定释放slot – 一个事务用光所有slot 2017 年象行中国(杭州 站)第一期 Resource Queue • System PANIC – 需要睡眠/唤醒机制 – Count + LWLock + Lock • Memory – Chaotic – 没有严格资源隔离 – 第三方库的malloc 2017 年象行中国(杭州 站)第一期 Resource Group • SQL语句并发控制 => 事务并发控制 • 基于cost的并发控制 • 基于优先级的CPU控制 => 精确CPU比例 • 内存控制 => 严格资源隔离 2017 年象行中国(杭州 站)第一期 Running Example gp_toolkit.gp_resgroup_status; 2017 年象行中国(杭州 站)第一期 Resource Group • Deadlock – 事务开始时拿slot • Self-deadlock – 事务结束时一定会释放slot • PANIC – Count + LWLock + Latch – Decouple with lock manager 2017 年象行中国(杭州0 码力 | 21 页 | 756.29 KB | 1 年前3 Greenplum资源管理器extended query • prepare/bind/execute libpq protocol • cursor • named portal – SQL结束不一定释放slot – 一个事务用光所有slot 2017 年象行中国(杭州 站)第一期 Resource Queue • System PANIC – 需要睡眠/唤醒机制 – Count + LWLock + Lock • Memory – Chaotic – 没有严格资源隔离 – 第三方库的malloc 2017 年象行中国(杭州 站)第一期 Resource Group • SQL语句并发控制 => 事务并发控制 • 基于cost的并发控制 • 基于优先级的CPU控制 => 精确CPU比例 • 内存控制 => 严格资源隔离 2017 年象行中国(杭州 站)第一期 Running Example gp_toolkit.gp_resgroup_status; 2017 年象行中国(杭州 站)第一期 Resource Group • Deadlock – 事务开始时拿slot • Self-deadlock – 事务结束时一定会释放slot • PANIC – Count + LWLock + Latch – Decouple with lock manager 2017 年象行中国(杭州0 码力 | 21 页 | 756.29 KB | 1 年前3
 完全兼容欧拉开源操作系统的 HTAP 数据平台 Greenplum提升比较 大。一个优化有关 procarray 锁,另一个优化和事务有关,大多数 OLTP 查询带有主键或者分布键,这种查询不需要 两阶段提交(2PC)。 集群在线扩容 Greenplum 6 实现了不停库在线增加新节点, 期间不会中断正在运行的所有查询;另外采用了 Jump Consistent Hash 的一致性哈希算法, 在数据重分布期间,每个旧节点仅移动出需要移动的数据到新节点上 白皮书 11 白皮书 | 11 l 避免扫描和回收仅包含事务 frozen 元组的页面 l 避免 VACUUM 没有必要的索引扫描 l 避免无用的堆截断尝试并在 VACUUM 期间采取独占锁定 l 提高 VACUUM 删除尾随空堆页面的速度 7 将实现集群之间的灾备相关的特性。众所周知,Greenplum 有 primary 和 mirror 节点,一旦主节点 出现故障,会用从节点来替代,但这仅限于一个数据中心内部。整个事务提交是同步的,当主集群提交事务时,需要 等备集群把日志传到主集群才能提交,对于跨区域或者是两地三中心数据中心来说,保证完全同步的开销是很难接受 的,针对这种情况,Greenplum 7 版本采用了多个集群间异步0 码力 | 17 页 | 2.04 MB | 1 年前3 完全兼容欧拉开源操作系统的 HTAP 数据平台 Greenplum提升比较 大。一个优化有关 procarray 锁,另一个优化和事务有关,大多数 OLTP 查询带有主键或者分布键,这种查询不需要 两阶段提交(2PC)。 集群在线扩容 Greenplum 6 实现了不停库在线增加新节点, 期间不会中断正在运行的所有查询;另外采用了 Jump Consistent Hash 的一致性哈希算法, 在数据重分布期间,每个旧节点仅移动出需要移动的数据到新节点上 白皮书 11 白皮书 | 11 l 避免扫描和回收仅包含事务 frozen 元组的页面 l 避免 VACUUM 没有必要的索引扫描 l 避免无用的堆截断尝试并在 VACUUM 期间采取独占锁定 l 提高 VACUUM 删除尾随空堆页面的速度 7 将实现集群之间的灾备相关的特性。众所周知,Greenplum 有 primary 和 mirror 节点,一旦主节点 出现故障,会用从节点来替代,但这仅限于一个数据中心内部。整个事务提交是同步的,当主集群提交事务时,需要 等备集群把日志传到主集群才能提交,对于跨区域或者是两地三中心数据中心来说,保证完全同步的开销是很难接受 的,针对这种情况,Greenplum 7 版本采用了多个集群间异步0 码力 | 17 页 | 2.04 MB | 1 年前3
 Greenplum数据库架构分析及5.x新功能分享Confidential–Inter nal Use Only GPDB:为大数据存储、计算、挖掘而设计  标准 SQL 数据库:ANSI SQL 2008 标准,OLAP,JDBC/ODBC  支持ACID、分布式事务  分布式数据库:线性扩展,支持上百物理节点  企业级数据库:全球大客户超过 1000+ 安装集群  百万行源代码,超过10年的全球研发投入  开源数据库(greenplum.org),良性生态系统 主节点Segment 系统表 优化器 分布式事务 调度器 执行器 解析器执行词法分 析、语法分析并生 成 解析树 客户端 主节点接受客户连接, 处理请求,执行认证 解析器 主节点 17 Pivotal Confidential–Inter nal Use Only 优化器 本地存储 主节点Segment 系统表 分布式事务 Interconnect 调度器 执行器 查询计划描述了如 何执行查询 主节点 Segment 实例 本地事务 执行器 系统表 本地存储 Segment 主机 Segment 实例 Local TM 执行器Executor Catalog 本地存储Storage Segment 实例 本地事务 执行器 系统表 本地存储 Segment 实例 本地事务 执行器 系统表 本地存储 Segment 主机 Segment0 码力 | 44 页 | 8.35 MB | 1 年前3 Greenplum数据库架构分析及5.x新功能分享Confidential–Inter nal Use Only GPDB:为大数据存储、计算、挖掘而设计  标准 SQL 数据库:ANSI SQL 2008 标准,OLAP,JDBC/ODBC  支持ACID、分布式事务  分布式数据库:线性扩展,支持上百物理节点  企业级数据库:全球大客户超过 1000+ 安装集群  百万行源代码,超过10年的全球研发投入  开源数据库(greenplum.org),良性生态系统 主节点Segment 系统表 优化器 分布式事务 调度器 执行器 解析器执行词法分 析、语法分析并生 成 解析树 客户端 主节点接受客户连接, 处理请求,执行认证 解析器 主节点 17 Pivotal Confidential–Inter nal Use Only 优化器 本地存储 主节点Segment 系统表 分布式事务 Interconnect 调度器 执行器 查询计划描述了如 何执行查询 主节点 Segment 实例 本地事务 执行器 系统表 本地存储 Segment 主机 Segment 实例 Local TM 执行器Executor Catalog 本地存储Storage Segment 实例 本地事务 执行器 系统表 本地存储 Segment 实例 本地事务 执行器 系统表 本地存储 Segment 主机 Segment0 码力 | 44 页 | 8.35 MB | 1 年前3
 Greenplum 6: 混合负载的理想数据平台Greenplum 6: 混合负载的理想数据平台 高小明 全球领先的开源MPP大数据平台 可扩展性 ACID事务 VS 分布式 简单易用 VS 结构化 半结构非结构化 VS 事务型 分析型 VS MPP - massively parallel processing - 大规模并行处理 master standby primary Greenplum在摩根士丹利 OLTP - Online transaction processing - 联机事务处理 出色的OLTP特性 天生的优势 ● 行式存储 ● 索引 ● 直接分发 ● 完整的增删改 Greenplum 6 增强 ● 并发修改、删除 ● 系统性的优化事务和锁 26 Pivotal Confidential–Internal Use Only 行式存储 表‘SALES’ on 31 Pivotal Confidential–Internal Use Only Greenplum 6:锁和事务的优化 表‘SALES’ 表‘SALES’ ■ 大幅减少事务开始和结束时的锁冲突 ■ 消除隐式只读操作(单条SELECT)的锁冲突 ■ 避免显式只读事务(BEGIN-SELECT-END)的两阶段提交 (开发中) ■ fastpath锁(PostgreSQL合并) 320 码力 | 52 页 | 4.48 MB | 1 年前3 Greenplum 6: 混合负载的理想数据平台Greenplum 6: 混合负载的理想数据平台 高小明 全球领先的开源MPP大数据平台 可扩展性 ACID事务 VS 分布式 简单易用 VS 结构化 半结构非结构化 VS 事务型 分析型 VS MPP - massively parallel processing - 大规模并行处理 master standby primary Greenplum在摩根士丹利 OLTP - Online transaction processing - 联机事务处理 出色的OLTP特性 天生的优势 ● 行式存储 ● 索引 ● 直接分发 ● 完整的增删改 Greenplum 6 增强 ● 并发修改、删除 ● 系统性的优化事务和锁 26 Pivotal Confidential–Internal Use Only 行式存储 表‘SALES’ on 31 Pivotal Confidential–Internal Use Only Greenplum 6:锁和事务的优化 表‘SALES’ 表‘SALES’ ■ 大幅减少事务开始和结束时的锁冲突 ■ 消除隐式只读操作(单条SELECT)的锁冲突 ■ 避免显式只读事务(BEGIN-SELECT-END)的两阶段提交 (开发中) ■ fastpath锁(PostgreSQL合并) 320 码力 | 52 页 | 4.48 MB | 1 年前3
 Greenplum数据仓库UDW - UCloud中立云计算服务商\T [字串] 设置 HTML <表> 标记属性, 如果没有参数就取消设置 \x 在扩展输出之间切换 (⽬前是 关闭) 12、常⽤ 、常⽤SQL命令 命令 命令:ABORT 描述: 终⽌当前事务 开发指南 Greenplum数据仓库 UDW Copyright © 2012-2021 UCloud 优刻得 106/206 语法: ABORT [ WORK | TRANSACTION [ROOTPARTITION [ALL] ] [table [ (column [, ...] ) ]] 命令: BEGIN 描述: 开始⼀个事务块 语法: BEGIN [ WORK | TRANSACTION ] [ 事务模式] [ READ WRITE | READ ONLY ] 事务模式为下⾯之⼀: ISOLATION LEVEL { SERIALIZABLE | READ COMMITTED | READ READ UNCOMMITTED } 命令: CLOSE 描述: 关闭⼀个游标 语法: CLOSE 名字 命令: COMMIT 描述: 提交当前事务 开发指南 Greenplum数据仓库 UDW Copyright © 2012-2021 UCloud 优刻得 110/206 语法: COMMIT [ WORK | TRANSACTION ] 命令: COPY 描述:0 码力 | 206 页 | 5.35 MB | 1 年前3 Greenplum数据仓库UDW - UCloud中立云计算服务商\T [字串] 设置 HTML <表> 标记属性, 如果没有参数就取消设置 \x 在扩展输出之间切换 (⽬前是 关闭) 12、常⽤ 、常⽤SQL命令 命令 命令:ABORT 描述: 终⽌当前事务 开发指南 Greenplum数据仓库 UDW Copyright © 2012-2021 UCloud 优刻得 106/206 语法: ABORT [ WORK | TRANSACTION [ROOTPARTITION [ALL] ] [table [ (column [, ...] ) ]] 命令: BEGIN 描述: 开始⼀个事务块 语法: BEGIN [ WORK | TRANSACTION ] [ 事务模式] [ READ WRITE | READ ONLY ] 事务模式为下⾯之⼀: ISOLATION LEVEL { SERIALIZABLE | READ COMMITTED | READ READ UNCOMMITTED } 命令: CLOSE 描述: 关闭⼀个游标 语法: CLOSE 名字 命令: COMMIT 描述: 提交当前事务 开发指南 Greenplum数据仓库 UDW Copyright © 2012-2021 UCloud 优刻得 110/206 语法: COMMIT [ WORK | TRANSACTION ] 命令: COPY 描述:0 码力 | 206 页 | 5.35 MB | 1 年前3
共 17 条
- 1
- 2













