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 - 事务隔离级别 ............................ 编写:陈淼 - 19 - 海量数据仓库的一个重大挑战是,要在一个受限的时间窗口内完成大量数据的装载。 GP 通过外部表(External Table)支持高速并行数据装载。外部表可以使用[单条记 录出错隔离]模式,以允许在装载数据过程中将出错的数据记录下来。可以设置错误容 忍的阈值,以实现对数据装载质量的控制。也可以对错误信息进行分析,以帮助改善数 据装载的质量。 结合使用外部表和 GP 的并0 码力 | 416 页 | 6.08 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 Queue • 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
Pivotal Greenplum 最佳实践分享数 • REINDEX:回收索引的垃圾空间 AGE监控和管理 PostgreSQL的MVCC事务语意依赖于比较事务ID(XID)的数值: 一条带有大于当前事务的XID的插入 XID的行版本是―属于未来的‖, 并且不应为当前事务可见。 PostgreSQL使用特殊的 XID(FrozenXID)与普通的XID进行区分。 FrozenXID总是被认为比任何普通 con#sess_id#‖查看是否有进程处于 waiting状态 解决方法: – 如果是被其它回话锁了,需要等待其它回话结束或者Cancel; – 极端的情况下,某些回话虽然终止了,但事务没有正常终止,此时可以用UTILITY模式访问对应的Instance,将 其终止 ex: PGOPTIONS='-c gp_session_role=utility' psql-h segment_host 常用可选参数:-a:直接停止,不提示终端使用者输入确认 -m:只停止master实例,与gpstart –m对应使用 -M fast | -f:停止数据库,中断所有数据库连接,回滚正在运行的事务 -u:不停止数据库,只加载pg_hba.conf 和postgresql.conf 中运行时参数,当改动参数配置时候使用。 -r: 重启数据库 Admin常用命令 查看实例配置和状态0 码力 | 41 页 | 1.42 MB | 1 年前3
完全兼容欧拉开源操作系统的 HTAP 数据平台 Greenplum并发控制优化 Greenplum 6 除了全局死锁检测,还引入了多项其他并发控制优化方法,这些优化对 SELECT 和 INSERT 提升比较 大。一个优化有关 procarray 锁,另一个优化和事务有关,大多数 OLTP 查询带有主键或者分布键,这种查询不需要 两阶段提交(2PC)。 集群在线扩容 Greenplum 6 实现了不停库在线增加新节点, 期间不会中断正在运行的所有查询;另外采用了 白皮书 11 白皮书 | 11 l 避免扫描和回收仅包含事务 frozen 元组的页面 l 避免 VACUUM 没有必要的索引扫描 l 避免无用的堆截断尝试并在 VACUUM 期间采取独占锁定 l 提高 VACUUM 删除尾随空堆页面的速度 7 将实现集群之间的灾备相关的特性。众所周知,Greenplum 有 primary 和 mirror 节点,一旦主节点 出现故障,会用从节点来替代,但这仅限于一个数据中心内部。整个事务提交是同步的,当主集群提交事务时,需要 等备集群把日志传到主集群才能提交,对于跨区域或者是两地三中心数据中心来说,保证完全同步的开销是很难接受 的,针对这种情况,Greenplum 7 版本采用了多个集群间异步0 码力 | 17 页 | 2.04 MB | 1 年前3
Greenplum备份恢复浅析每个segment备份时设置隔离级别为串行化,保证每个 segment的数据一致性 但是,各个segment的数据设置隔离级别的动作存在时间差, 而master仍然接受新的事务,从而导致各个segment上的数 据不一致。我们可以通过实现barrier机制来避免这种情况: 1. 使数据库只读 2. 等待所有的事务全部提交,开始备份 3. 给pg_class加锁,等待每个segment备份时设置隔离级别 为串行化,恢复数据库为可读可写0 码力 | 17 页 | 1.29 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 精粹文集Postgresql 数 据库实例同时开展并行计算。而且,这些 Postgresql 之间采用 share- nothing 无共享架构,从而更将这种并行计算能力发挥到极致,除此之 外,MPP 采用两阶段提交和全局事务管理机制来保证集群上分布式事 务的一致性,Greenplum 像 Postgresql 一样满足关系型数据库的包括 ACID 在内的所有特征。 从上图可以看到,Greenplum 的最小并行单元不是节点层级,而是在 最 后, 需 要 强 调 的 是:Greenplum 绝 不 仅 仅 只 是 简 单 的 等 同 于 “Postgresql+interconnect 并行调度 + 分布式事务两阶段提交”, Greenplum 还研发了非常多的高级数据分析管理功能和企业级管理模 块,如下这些功能都是 Postgresql 没有提供的: ·外部表并行数据加载 ·可更新数据压缩表 ·行、列混合存储 Storm、Mesos...... 无一例外都是 Master-Slave 架构。相反,采用 MultipleActive Master 的软件系统,需要消耗更多资源和机制来保证 元数据一致性和全局事务一致性,特别是在节点规模较多时,将导致 性能下降,严重时可能导致多 Master 之间的脑裂引发严重系统故障。 4. Greenplum 不能做什么? Greenplum 最大的特点总结就一句话:基于低成本的开放平台基础上0 码力 | 64 页 | 2.73 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数据仓库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
共 16 条
- 1
- 2













