首页 > 编程知识 正文

分布式事务框架seata,分布式任务调度原理

时间:2023-05-06 07:08:52 阅读:174937 作者:1151

对于独立介质,没有操作系统通用介质。 有的只是process之间互相发送信息。

三个目标

1 )在safety(essential ) :中,两个进程不会同时进入cs (无进程)

2 ) liveness(essential ) (最终满足每个CS接入请求)。

3 )订单固定资产

中心基本解决方案

选择大师制作管理Token,维持想进入Critical Section的Process的队列。 当一个process Pi请求进入危机安全时,如果Token在Master手中,则将Token传递给Pi,否则将Pi放入队列,Pi一直在等待Reply Token。 当一个Process Pj离开CS时,它将Token返回给Master,Master又将Token传递给队列中的Process。

缺点:主机负荷大,单点失败的问题。 共享文件系统的文件锁也属于这种方式,而主操作系统是共享文件系统的操作系统。

基于签名的解决方案

正如作为链路层实现之一的令牌环一样,Token在环上不断传递。 如果需要访问CS,请等待Token到达自己,然后再访问CS。 然后,把Token交给下面。 不需要访问CS的process直接向下传递。

Ricart-Agrawala Algorithm

每个进程有三种状态Released、Wanted和Held

访问CS时,状态变为Wanted,multicast向所有其他进程请求request(ti,I ) t,并在从所有其他进程接收到Reply时进入,状态变为Held。 接收到请求的Process,如果自己的状态为Held或Wanted,且是自己的(Tj,j ) ) Ti,则使请求进入通知队列,否则直接进行Reply。 自己访问CS后,向队列中的Process发送reply

t是Lamport time

Maekawa Algorithm

Ricart-Agrawala必须得到所有其他流程的许可才能进入CS。 Maekawa只要得到k(kn/2 )流程的许可就可以了。 确保一个process只投一票(只Reply一个process的request )就可以了

可以看到分布式系统算法中常用的Topology

1 )星形(中心) )

2 )环状

3 )网状(全部到全部) )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。