当前课程知识点:大数据平台核心技术 >  实践1:通过两阶段提交协议完成数据上传 >  分布式事务 >  分布式事务 (主讲人:冯骁)

返回《大数据平台核心技术》慕课在线视频课程列表

分布式事务 (主讲人:冯骁)在线视频

分布式事务 (主讲人:冯骁)

下一节:分布式一致性算法(主讲人:冯骁)

返回《大数据平台核心技术》慕课在线视频列表

分布式事务 (主讲人:冯骁)课程教案、知识点、字幕

各位同学 大家好

我是来自阿里云计算

离线数据处理团队的冯骁

今天我会给大家介绍一下

课程实践一的具体内容

课程实践一的题目是

《通过两阶段提交协议

完成数据上传》

顾名思义

我们需要使用两阶段提交协议

来完成实践项目

因此

在介绍实践的具体内容之前

我会先讲解一下

分布式事务的含义

包括主要的分布式一致性算法

着重介绍两阶段提交

和三阶段提交的过程

之后 我会向大家讲解

课程实践的框架和模块设计

以及实践的具体要求

首先 我向大家介绍一下

什么是事务

事务是指作为单个逻辑

工作单元执行的一系列操作

事务处理可以确保

除非事务性单元内

所有操作都成功完成

否则不会永久更新

面向数据的资源

通过将一组相关操作

组合为一个要么全部成功

要么全部失败的单元

可以简化错误恢复

并使应用程序更加可靠

一个逻辑工作单元要成为事务

必须满足所谓的“ACID”

就是原子性、一致性

隔离性和持久性

原子性是指

事务必须是原子工作单元

对于其数据修改

要么全部执行

要么全部都不执行

一致性是指事务在完成时

必须使所有的数据

保持一致的状态

在相关数据库中

所有规则必须应用于

事务的修改

以保证所有数据的完整性

事务结束时

所有的内部数据结构

都必须是正确的

隔离性是指

由并发事务所作的修改

必须与任何其它并发事务

所作的修改隔离

就是说事务查看数据时

数据所处的状态

要么是另一事务并发

修改它之前的状态

要么是另一事务

修改它之后的状态

事务不会查看中间状态的数据

最后一个是持久性

就是事务完成之后

它对于系统的影响是永久的

该修改即使出现致命的

系统故障也会一直保持

下面我们用最经典的

银行汇款的例子

来讲解一下事务

比如说我现在要从一个账号

汇款到另一个账号

需要6个操作

第一个操作是

从我的原账号把余额读出来

然后对这个账号做减法操作

然后再把结果写回这个账号里

紧接着我会从目标账户中

把余额读出来

然后对这个账号做加法操作

最后也把结果写回这个账户中

为了保证数据的一致性

这6件事要么都成功完成

要么都不成功

而且对这个操作中

对A、B账户的其它访问

必须要完全锁死

就是说要排除

其他的读写操作

否则可能会有赃数据产生

这就是事务

接下来我会讲一下

分布式的事务

首先我会讲一下

为什么我们要用分布式的模型

来实现事务

在提供数据服务的时候

可能会遇到两种问题

第一种就是单台服务器的性能

不足以提供足够的计算能力

第二个就是如果

我们这个服务器宕机的话

可能会造成服务不可用

或者说我之前存储在上面的

数据丢失

于是我们就得

对我们的服务器进行扩展

加入多台机器

第一个是来分担性能上的问题

第二也是来解决单点

可能出现的故障问题

一般来说

我们会有两种方法

来扩展数据服务

第一种就是把数据

分布在不同的服务器上

比如说我们可以把数据

进行哈希(04:24)

让它们根据哈希值(04:26)

来落在不同的机器上

第二种就是数据镜像

就是说所有的服务器

都有相同的数据

提供相同的服务

这个也是目前很多分布式系统

所采用的备份的手段

我们在加入了更多的机器之后

事务的问题

会变得更加复杂起来

如果在刚才的例子里边

两个账户不在同一台机器上

我们就需要一个

跨机器的事务处理

如果说我的原账户扣钱成功了

但是我的目标账户加钱不成功

就需要把原账户的操作

回滚回去

如果是在跨机器的情况下

这个操作会非常复杂

如果是采用数据镜像的方案

那么这两个汇款

是可以在一台机器上完成的

但是我们可能会有

多个账户的副本

我对第一个账户的汇款

有两个并发操作

比如说我要同时汇给两个人

这两个操作如果发生在

两台不同的服务器上

可能对同一个数据的操作

保证它的一致性

就会有一些挑战

大数据平台核心技术课程列表:

第一讲 大数据和ODPS

-主讲人:武永卫

--大数据处理平台概述(主讲人:武永卫)

-主讲人:程永

--大数据平台ODPS(主讲人:程永)

-QUIZ--作业

第二讲 分布式存储

-大纲

--大纲(主讲人:姚文辉)

-初步认识大数据对分布式存储系统的需求

--初步认识大数据对分布式存储系统的需求

-理解大数据对分布式存储系统的需求

--理解大数据对分布式存储系统的需求(主讲人:姚文辉)

-具体说明大数据对分布式存储系统的需求

--具体说明大数据对分布式存储系统的需求(主讲人:姚文辉)

-大规模分布式存储的挑战

--大规模分布式存储的挑战(主讲人:姚文辉)

-小概率事件-Raid卡故障

--小概率事件-Raid卡故障(主讲人:姚文辉)

-分布式存储系统举例

--分布式存储系统举例(主讲人:姚文辉)

-分布式存储系统重要功能设计要点剖析

--分布式存储系统重要功能设计要点剖析(主讲人:姚文辉)

-链式写正常流程

--链式写正常流程(主讲人:姚文辉)

-写流程的另一种常见方式:主从模式

--写流程的另一种常见方式:主从模式(主讲人:姚文辉)

-链式写异常流程

--链式写异常流程(主讲人:姚文辉)

-写异常处理的另一种方法-Seal and New

--写异常处理的另一种方法-Seal and New(主讲人:姚文辉)

-读正常流程

--读正常流程(主讲人:姚文辉)

-读流程优化-BackupRead

--读流程优化-BackupRead(主讲人:姚文辉)

-IO QoS

--IO QoS(主讲人:姚文辉)

-数据正确性:checksum

--数据正确性:checksum(主讲人:姚文辉)

-数据可靠性-Replication

--数据可靠性-Replication(主讲人:姚文辉)

-数据均衡-Rebalance

--数据均衡-Rebalance(主讲人:姚文辉)

-垃圾回收-Garbage collection

--垃圾回收-Garbage collection(主讲人:姚文辉)

-Erasure coding

--Erasure coding(主讲人:姚文辉)

-Erasure coding(3,2)写入和读取过程

--Erasure coding(3,2)写入和读取过程(主讲人:姚文辉)

-元数据管理的高可用性和可扩展性

--元数据管理的高可用性和可扩展性(主讲人:姚文辉)

-元数据管理的高可用性

--元数据管理的高可用性(主讲人:姚文辉)

-Paxos概要

--Paxos概要(主讲人:姚文辉)

-Raft

--Raft(主讲人:姚文辉)

-元数据管理的可扩展性

--元数据管理的可扩展性(主讲人:姚文辉)

-不同存储介质的特性

--不同存储介质的特性(主讲人:姚文辉)

-盘古混合存储

--盘古混合存储(主讲人:姚文辉)

-QUIZ--作业

第三讲 资源管理与任务调度

-阿里云飞天分布式调度

--阿里云飞天分布式调度(主讲人:陶阳宇)

-任务调度

--任务调度(主讲人:陶阳宇)

-资源调度

--资源调度(主讲人:陶阳宇)

-容错机制

--容错机制(主讲人:陶阳宇)

-规模挑战

--规模挑战 (主讲人:陶阳宇)

-安全域性能隔离

--安全域性能隔离(主讲人:陶阳宇)

-分布式调度的发展方向

--分布式调度的发展方向(主讲人:陶阳宇)

-QUIZ--作业

第四讲 分布式编程模型的设计与演化

-数据格式和抽象

--数据格式和抽象(主讲人:吴威)

-分布式编程模型

--分布式编程模型(主讲人:吴威)

-MapReuduce编程模型

--MapReuduce编程模型(主讲人:吴威)

-关系型数据编程模型

--关系型数据编程模型(主讲人:吴威)

-分布式图计算模型

--分布式图计算模型(主讲人:吴威)

-分布式编程未来展望

--分布式编程未来展望(主讲人:吴威)

-QUIZ--作业

实践1:通过两阶段提交协议完成数据上传

-分布式事务

--分布式事务 (主讲人:冯骁)

-分布式一致性算法

--分布式一致性算法(主讲人:冯骁)

-两阶段提交与三阶段提交

--两阶段提交与三阶段提交(主讲人:冯骁)

-实践--介绍

--实践--介绍(主讲人:冯骁)

第五讲 离线分布式关系型计算

-关系型计算基本原理_1

--离线分布式关系型计算_1(主讲人:王鹏飞)

-关系型计算基本原理_2

--关系型计算基本原理_2(主讲人:王鹏飞)

-分布式环境中的连接计算和聚合计算

--分布式环境中的连接计算和聚合计算(主讲人:王鹏飞)

-其他计算和物理优化

--其他计算和物理优化(主讲人:王鹏飞)

-QUIZ--作业

第六讲 全局数据管理与调度

-提纲

--提纲(主讲人:罗李)

-课程背景介绍

--课程背景介绍(主讲人:罗李)

-前序知识

--前序知识(主讲人:罗李)

-分布式节点距离计算法则

--分布式节点距离计算法则(主讲人:罗李)

-数据分布策略

--数据分布策略(主讲人:罗李)

-分布式计算调度

--分布式计算调度(主讲人:罗李)

-数据就近原则计算如何容错

--数据就近原则计算如何容错(主讲人:罗李)

-ODPS跨集群数据依赖

--ODPS跨集群数据依赖(主讲人:罗李)

-QUIZ--作业

实践2:编写MR完成Group By+Join操作

-主讲人:谢德军

--实践2:编写MR完成Group By+Join操作(主讲人:谢德军)

第七讲 流式计算的系统设计与实现

-增量计算和流式计算

--流式计算的系统设计与实现(主讲人:强琦)

-与批量计算的区别

--与批量计算的区别(主讲人:强琦)

-业界典型系统技术概要分析

--业界典型系统技术概要分析(主讲人:强琦)

-核心技术

--核心技术(主讲人:强琦)

-消息机制

--消息机制(主讲人:强琦)

-有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制

--有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制(主讲人:强琦)

-StreamSQL

--StreamSQL(主讲人:强琦)

-QUIZ--作业

第八讲 内存计算

-软硬件趋势、分布式计算简史与内存计算

--软硬件趋势、分布式计算简史与内存计算(主讲人:强琦)

-分布式计算

--分布式计算(主讲人:强琦)

-内存计算

--内存计算(主讲人:强琦)

-统一的计算框架

--统一的计算框架(主讲人:强琦)

-业界经典系统技术分析-spark&flink

--业界经典系统技术分析-spark&flink(主讲人:强琦)

-QUIZ--作业

第九讲 大规模数据的分布式机器学习平台

-主讲人:褚葳

--大规模数据的分布式机器学习平台(主讲人:褚葳)

-QUIZ--作业

实践3:实现MapReduce编程运行时库

-分布式环境下的新问题

--分布式环境下的新问题(主讲人:徐冬)

-工程实现范例

--工程实现范例(主讲人:徐冬)

-课程设计相关问题

--课程设计相关问题(主讲人:徐冬)

分布式事务 (主讲人:冯骁)笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。