1 / 64
文档名称:

分布式系统和WEB服务培训.pptx

格式:pptx   大小:268KB   页数:64页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

分布式系统和WEB服务培训.pptx

上传人:书犹药也 2022/7/28 文件大小:268 KB

下载得到文件列表

分布式系统和WEB服务培训.pptx

相关文档

文档介绍

文档介绍:第五章 分布式系统文件共享
第1页
共享文件语义
两个以上用户共享同一个文件时,会产生各种情况,从而产生不一样语义.故文件服务时必须准确定义服务读写语义。
(时间次序)
开始事务处理(T) ;
K:取款(A,100) ;
K:存款(B,100) ;
K:取款(C,200) ;
K:存款(B,200) ;
结束事务处理(T)
我们将用T、U、V代表事务处理标号,用K、M、N代表不一样银行分行,用A、B、C代表客户分行账号,一个客户发出一系列服务过程调用就能够合并为一次事务处理。
第10页
5.3 并发控制
并发控制主要目标是满足事务处理一致性(串行等价性),最早方法:

B 在开启多个事物操作之前先检验是否满足一致性
缺点:
.
第11页
加锁
当某一事务访问一共享数据项时,由服务器对该数据项加锁,当完成访问时,再由服务器***,方便于其它事务访问。在上锁期间,只有锁定该数据项事务才能对其访问,这么就确保了在某一时刻访问数据进程唯一性和确定性。

一个锁可由三都分组成:
①一个二值逻辑变量,用以指示上锁/***;
②一个类似于信号灯条件变量;
③访问该锁宿主事务标识符
第12页
实现上锁机制时,需要注意锁粒度。粒度是指被加锁数据项大小,粒度越细,则并行度越高,反之,并行度越低。对整个文件加锁是一个极端情况,这时候,事务串行执行。在下面讨论中,上锁普通施加于文件中数据项上。
锁定机制是分两个阶段进行。一个事务在工作过程中,可分为“生长”和“消亡”两个阶段。生长阶段需要上锁,消亡阶段需要***,这就是两阶段锁定机制。在生长阶段,事务处于暂时状态,其暂时数据不为其它事务所见。在消亡阶段,暂时数据要变成永久数据,为了保持事务特征,必须在事务关闭最终,才能***。
第13页
二、几个加锁方案
1.最简单加锁方法
在这种方案中,文件服务器对客户事务访问每一个数据项加锁,而在事务完成(或中止)时打开全部锁,当另一事务试图访问已上锁数据项时,它必须等候到***为止。
2. 读/写锁方案
因为简单锁定机制无须要地将全部访问到数据项锁定,从而降低了事务并发性。尤其是当事务中均是读操作时,便没有必要上锁。
第14页
基于这种分析,提出了读/写锁方案,即允许多个事务并发读同一数据项,只允许一个事务写一个数据项。也称为“多读/单写” 方法。在这种方法中,对于读操作,还不能放弃上锁,因为不上锁,可能会有其它事务修改它,造成不一致。为此,要采取两种不一样锁,即读锁和写锁 对于访问全部数据项均可上读锁,只对写操作访问数据项上写锁。上写锁数据项不能被其它事务所访问,上读锁数据项只能为其它事务读,但不能写。
第15页
上锁和***基本规则如示:
1.当客户在事务中访问数据项时,有以下情况:
①假如数据项还未上锁,服务器将其锁定,并让客户防问该数据项;
②假如数据项已被其它事务上锁,客户必须等候该锁打开:
③假如服务器已经锁定了本事务中一个数据项,客户能够继续防问。
④假如事务想要写自己已上有读锁数据项,应该将读锁改为写锁。
,服务器打开它为该事务锁定全部数据项。
第16页

以上两种方法都在一定程度上提升了并发性,但与此同时也会带来另一个问题——死锁。所谓死锁就是一组事务中每个操作都处于上锁且又等候***状态,比如以下两个事务U和T,在时间次序上依次采取以下动作,结果将造成死锁。
T等候事务U释放读锁b,而它本身又对其加读锁引发事务U对其解锁等候,由此,便造成了相互牵制。
处理方法有以下4种
第17页
①在事务开始执行前便对其所要访问数据加锁,这虽能预防死锁,但却降低了资源共享率。
②给资源要求一个序号,申请资源时必须按序号单调递增或递减方向申请,这种方法也降低了并行性。
③经过资源申请占有图来检测有没有死锁,一旦发觉死锁便由服务器中止一个事务来打破循环占有等候,处理死锁。
④“时限”控制,是文件系统中较惯用方法,即给每个锁要求一个时间段。在此时段内,该锁是稳定,若超出此时限后,该锁便变成易损锁,若此时没有别事务对上锁数据项竞争,则该锁继续保持;不然话,便打破此锁,与此同时,原上锁事务中止。这种方法也有两个不足,第一是增加了系统开销;第二是“时限”取值问