Greenplum资源管理器
2017 年象行中国(杭州 站)第一期 Greenplum资源管理器 姚珂男/Pivotal kyao@pivotal.io 2017 年象行中国(杭州 站)第一期 Agenda • Greenplum数据库 • Resource Queue • Resource Group 2017 年象行中国(杭州 站)第一期 Greenplum数据库 • 基于PostgreSQL • 分布式 => PANIC 2017 年象行中国(杭州 站)第一期 Resource Queue • Cost is tricky – 没有明确的定义 – 不同优化器不一致 – 优化器不能被纳入资源管理器 2017 年象行中国(杭州 站)第一期 Resource Queue • Priority is rough – 不能精确控制CPU – CHECK_FOR_INTERRUPTS – BackoffBackendTick0 码力 | 21 页 | 756.29 KB | 1 年前3Greenplum分布式事务和两阶段提交协议
Garcia-Molina /Jeffrey D.Ullman/Jennifer Widom《数据库系统实现》 查询编译器/ 优化器 事务管理器 DDL编译器 执行引擎 日志和恢复 并发控制 索引/文件/ 记录管理器 缓冲区管理器 缓冲区 锁表 存储管理器 存储 查询计划 对索引、文件和 记录的请求 页命令 事务命令 查询、更新 用户/ 应用 DDL命令 数据库管理员 两阶段提交协议 ● Jim Gray等研究者在1978年提出了两阶段提交协议,用于保证分布式事务提交的原子性 ● 可以用于单机集中式系统,由事务管理器协调多个资源管理器;也可以用于分布式系 统,由一个全局的 事务管理器协调各个子系统的局部事务管理器完成两阶段提交 ● 广泛应用于商业分布式数据库 ❏ A节点是事务的协调者(coordinator) ❏ B和C是事务的参与者(participant) 协调者 参与者 发送prepare消息 ready 发送commit/abort消息 ack 阶段2 阶段1 25 2PC同样可以应用在单机系统上 协调者 资源管理器1 资源管理器2 资源管理器3 日志1 日志2 日志3 PREPARE / COMMIT / ROLLBACK 命令 参与者 读写操作 26 两阶段提交协议需要处理的故障 1. 参与者故障 参与者恢复后,根据日志0 码力 | 42 页 | 2.12 MB | 1 年前3Apache ShardingSphere 中文文档 5.0.0-alpha
ACID 原生支持。但在分布式的场景下,它却成为系统性能 的桎梏。如何让数据库在分布式场景下满足 ACID 的特性或找寻相应的替代方案,是分布式事务的重点 工作。 本地事务 在不开启任何分布式事务管理器的前提下,让每个数据节点各自管理自己的事务。它们之间没有协调以 及通信的能力,也并不互相知晓其他数据节点事务的成功与否。本地事务在性能方面无任何损耗,但在 强一致性以及最终一致性方面则力不从心。 XA 协议的两阶段事务 • 基于 Seata 的柔性事务 XA 两阶段事务 两阶段事务提交采用的是 X/OPEN 组织所定义的DTP 模型所抽象的 AP(应用程序), TM(事务管理器) 和 RM(资源管理器)概念来保证分布式事务的强一致性。其中 TM 与 RM 间采用 XA 的协议进行双向通 信。与传统的本地事务相比,XA 事务增加了准备阶段,数据库除了被动接受提交指令外,还可以反向通 需要数据库厂商提供 XA 驱动 实现,TransactionManager 则需要事务管理器的厂商实现,传统的事务管理器需要同应用服务器绑 定,因此使用的成本很高。而嵌入式的事务管器可以以 jar 包的形式提供服务,同 Apache ShardingSphere 集成后,可保证分片后跨库事务强一致性。 通常,只有使用了事务管理器厂商所提供的 XA 事务连接池,才能支持 XA 的事务。Apache ShardingSphere0 码力 | 301 页 | 3.44 MB | 1 年前3Apache ShardingSphere 中文文档 5.0.0
ACID 原生支持。但在分布式的场景下,它却成为系统性能的 桎梏。如何让数据库在分布式场景下满足 ACID 的特性或找寻相应的替代方案,是分布式事务的重点工 作。 本地事务 在不开启任何分布式事务管理器的前提下,让每个数据节点各自管理自己的事务。它们之间没有协调以 及通信的能力,也并不互相知晓其他数据节点事务的成功与否。本地事务在性能方面无任何损耗,但在 强一致性以及最终一致性方面则力不从心。 • 基于 XA 协议的两阶段事务 • 基于最终一致性的柔性事务 XA 事务 两阶段事务提交采用的是 X/OPEN 组织所定义的 DTP 模型所抽象的 AP(应用程序), TM(事务管理器) 和 RM(资源管理器)概念来保证分布式事务的强一致性。其中 TM 与 RM 间采用 XA 的协议进行双向通 信。与传统的本地事务相比,XA 事务增加了准备阶段,数据库除了被动接受提交指令外,还可以反向通 需要数据库厂商提供 XA 驱动 实现,TransactionManager 则需要事务管理器的厂商实现,传统的事务管理器需要同应用服务器绑 定,因此使用的成本很高。而嵌入式的事务管器可以通过 jar 形式提供服务,同 Apache ShardingSphere 集成后,可保证分片后跨库事务强一致性。 通常,只有使用了事务管理器厂商所提供的 XA 事务连接池,才能支持 XA 的事务。Apache ShardingSphere0 码力 | 385 页 | 4.26 MB | 1 年前3Mybatis 3.3.0 中文用户指南
service XML 配置文件(configuration XML)中包含了对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源(DataSource)和 决定事务范围和控制方式的事务管理器(TransactionManager)。XML 配置文件的详细内容后面再探讨,这里先给出一个简单的示 例: 管理器 dataSource 数据源 databaseIdProvider 数据库厂商标识 mappers 映射器 properties 这些属性都是可外部配置且可动态替换的,既可以在典型的 Java ID(比如:id=”development”)。 事务管理器的配置(比如:type=”JDBC”)。 数据源的配置(比如:type=”POOLED”)。 默认的环境和环境 ID 是一目了然的。随你怎么命名,只要保证默认环境要匹配其中一个环境ID。 事务管理器( 事务管理器(transactionManager) ) 在 MyBatis 中有两种类型的事务管理器(也就是 type=”[JDBC|MANAGED]”):0 码力 | 98 页 | 2.03 MB | 1 年前3Apache ShardingSphere 中文文档 5.1.1
ACID 原生支持。但在分布式的场景下,它却成为系统性能的 桎梏。如何让数据库在分布式场景下满足 ACID 的特性或找寻相应的替代方案,是分布式事务的重点工 作。 本地事务 在不开启任何分布式事务管理器的前提下,让每个数据节点各自管理自己的事务。它们之间没有协调以 及通信的能力,也并不互相知晓其他数据节点事务的成功与否。本地事务在性能方面无任何损耗,但在 强一致性以及最终一致性方面则力不从心。 • 基于 XA 协议的两阶段事务 • 基于最终一致性的柔性事务 XA 事务 两阶段事务提交采用的是 X/OPEN 组织所定义的 DTP 模型所抽象的 AP(应用程序), TM(事务管理器) 和 RM(资源管理器)概念来保证分布式事务的强一致性。其中 TM 与 RM 间采用 XA 的协议进行双向通 信。与传统的本地事务相比,XA 事务增加了准备阶段,数据库除了被动接受提交指令外,还可以反向通 需要数据库厂商提供 XA 驱动 实现,TransactionManager 则需要事务管理器的厂商实现,传统的事务管理器需要同应用服务器绑 定,因此使用的成本很高。而嵌入式的事务管器可以通过 jar 形式提供服务,同 Apache ShardingSphere 集成后,可保证分片后跨库事务强一致性。 通常,只有使用了事务管理器厂商所提供的 XA 事务连接池,才能支持 XA 的事务。Apache ShardingSphere0 码力 | 409 页 | 4.47 MB | 1 年前3Apache ShardingSphere 中文文档 5.1.0
ACID 原生支持。但在分布式的场景下,它却成为系统性能的 桎梏。如何让数据库在分布式场景下满足 ACID 的特性或找寻相应的替代方案,是分布式事务的重点工 作。 本地事务 在不开启任何分布式事务管理器的前提下,让每个数据节点各自管理自己的事务。它们之间没有协调以 及通信的能力,也并不互相知晓其他数据节点事务的成功与否。本地事务在性能方面无任何损耗,但在 强一致性以及最终一致性方面则力不从心。 • 基于 XA 协议的两阶段事务 • 基于最终一致性的柔性事务 XA 事务 两阶段事务提交采用的是 X/OPEN 组织所定义的 DTP 模型所抽象的 AP(应用程序), TM(事务管理器) 和 RM(资源管理器)概念来保证分布式事务的强一致性。其中 TM 与 RM 间采用 XA 的协议进行双向通 信。与传统的本地事务相比,XA 事务增加了准备阶段,数据库除了被动接受提交指令外,还可以反向通 需要数据库厂商提供 XA 驱动 实现,TransactionManager 则需要事务管理器的厂商实现,传统的事务管理器需要同应用服务器绑 定,因此使用的成本很高。而嵌入式的事务管器可以通过 jar 形式提供服务,同 Apache ShardingSphere 集成后,可保证分片后跨库事务强一致性。 通常,只有使用了事务管理器厂商所提供的 XA 事务连接池,才能支持 XA 的事务。Apache ShardingSphere0 码力 | 406 页 | 4.40 MB | 1 年前3Apache ShardingSphere 中文文档 5.1.2
ACID 原生支持。但在分布式的场景下,它却成为系统性能的 桎梏。如何让数据库在分布式场景下满足 ACID 的特性或找寻相应的替代方案,是分布式事务的重点工 作。 本地事务 在不开启任何分布式事务管理器的前提下,让每个数据节点各自管理自己的事务。它们之间没有协调以 及通信的能力,也并不互相知晓其他数据节点事务的成功与否。本地事务在性能方面无任何损耗,但在 强一致性以及最终一致性方面则力不从心。 • 基于 XA 协议的两阶段事务 • 基于最终一致性的柔性事务 XA 事务 两阶段事务提交采用的是 X/OPEN 组织所定义的 DTP 模型所抽象的 AP(应用程序), TM(事务管理器) 和 RM(资源管理器)概念来保证分布式事务的强一致性。其中 TM 与 RM 间采用 XA 的协议进行双向通 信。与传统的本地事务相比,XA 事务增加了准备阶段,数据库除了被动接受提交指令外,还可以反向通 需要数据库厂商提供 XA 驱动 实现,TransactionManager 则需要事务管理器的厂商实现,传统的事务管理器需要同应用服务器绑 定,因此使用的成本很高。而嵌入式的事务管理器可以通过 jar 形式提供服务,同 Apache ShardingSphere 集成后,可保证分片后跨库事务强一致性。 通常,只有使用了事务管理器厂商所提供的 XA 事务连接池,才能支持 XA 的事务。Apache ShardingSphere0 码力 | 446 页 | 4.67 MB | 1 年前3Apache ShardingSphere 中文文档 5.2.0
能方面无任何损耗,但在强一致性以及最终一致性方 面不能够保证。 XA 事务 XA 事务采用的是 X/OPEN 组织所定义的 DTP 模型 所抽象的 AP(应用程序), TM(事务管理器)和 RM (资源管理器)概念来保证分布式事务的强一致性。其中 TM 与 RM 间采用 XA 的协议进行双向通信,通 过两阶段提交实现。与传统的本地事务相比,XA 事务增加了准备阶段,数据库除了被动接受提交指令外, tifactId>${shardingsphere.version} 操作步骤 1. 配置事务管理器 2. 使用分布式事务 配置示例 配置事务管理器0 码力 | 449 页 | 5.85 MB | 1 年前 3PieCloudDB:基于PostgreSQL的eMPP云原生数据库
reserved. OpenPie Confidential • ACID - 支持两种隔离级别:读已提交、可重复读 • 扩展性 - 事务管理器无单点性能瓶颈 • 隔离性 - 不同租户之间的事务管理器是完全隔离的,不会相互影响 • 容错性 - 事务管理器支持对各类基础设施故障进行自动容错 事务 @2022 OpenPie. All rights reserved. OpenPie Confidential0 码力 | 45 页 | 1.32 MB | 1 年前3
共 38 条
- 1
- 2
- 3
- 4