您的位置:首页 > 其它

分布式系统原理与规范 笔记2

2014-01-23 17:48 162 查看
第五章

1.时钟同步

计时器 石英晶体; 真正重要的是相对时间;n台机器之间会有 时钟偏移

选举算法:

选举算法试着找出进程号最大的进程,指定为协调者。

1.欺负着算法

1)p向比她编号大的进程发生election消息;

2.如果无人响应,p获胜成为协调者

3)如果有比编号比p的进程响应,则p工作完成。

2.环算法

进程知道他的后继者是谁,如果协调者失效,会依次向后传递。协调者还要向其他进程发送消息通知自己是协调者。

3.互斥算法

单点故障问题

4.分布式互斥算法

要求系统中的所有时间都是完全排序的。

当一个进程想要进入临界区,构造消息:进入临界区的名字,进程号,当前时间;然后发给其他进程;其他进程根据自己与消息中

临界区相关的状态来决定她要采取的动作。

1)reciver不在临界区,发送ok

2)若在,则暂且不进行回答,将请求放入队列中

3)reciver想进入临界区但尚未进入,把收到的消息的时间戳与包含在它发送给其余进程的消息的时间戳进行比较。

时间较早的获胜。

all or nothing

实务的特性:

原子性 实务的发生是不可分割的

一致性 事务不能破坏系统的稳定性

独立性 并发的事务不相互影响

持久性 一旦事务提交,改变将是永远存在的。

分布式事务:一个单层子事务需要处理分布在多台机器上的数据。 需要用分布式算法来锁定数据和提交整个事务。

嵌套事务:按照事务逻辑分为子事务。

方法:

1、私有工作空间(拷贝)

2、写前日志 write head log;对事务中的任何一句都要记录 变量的old/new value;

如果事务执行成功,一条commit记录被写进日志,数据结构不需修改,因为已经是最新的。

如果事务终止,使用日志来回退到原来的状态。roolback

并发控制:

并发控制允许几个事务同时执行,但是被操作的数据集合要保持一直的状态。

两阶段加锁: 调度管理器在增长阶段 获取lock;收缩阶段释放
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: