其他分享
首页 > 其他分享> > Frangipani: A Scalable Distributed File System 论文阅读

Frangipani: A Scalable Distributed File System 论文阅读

作者:互联网

Frangipani是一篇1997年“分布式文件系统”的论文,其中关于缓存一致性分布式事务分布式故障恢复的简单并且优秀的设计思想,依旧值得我们学习和借鉴

本文将按照以下几个方面透彻介绍Frangipani的方方面面

目录

一、Background

1.历史背景

2.技术背景

同作者在1996年发表了《Petal: Distributed virtual disks》

一个分布式shared disk,具有如下的特点:

由此,同作者想把Petal的特性,发挥到上层file system中,于是设计了Frangipani

Frangipani的设计feature包括

二、System Structure

1.架构图

有三种机器:

三种机器,在不影响相互工作的情况下,理论上可以分布在任意机器上,并非图中那样的分布

比如,第一种和第二种机器可以是一台机器,第二种和第三种也不必在一台机器上

2.两层设计

3.Frangipani file system

4.安全性考虑

并非所有mount了Frangipani的机器都可以访问Petal,原因是kernel不同,可能存在bug

但可以通过在已有Frangipani机器上,再搭建一层Service来实现C-S访问Frangipani,如图中的架构

三、 Disk Layout

本节会介绍Petal的layout

1.Layout

2.details

四、 The Lock Service

简单来说,Frangipani的cache coherence和failover是通过读写锁实现的

1.features

2.架构

文章并没有详细描述分布式锁的架构,但可以从描述中窥见一二

3.锁的划分

4.实现

处于性能考虑,采用异步消息来实现分布式锁的部分功能

他们的用法会在之后叙述中介绍

五、Cache coherence

简单来说,是利用读写锁实现

下面通过两个例子介绍锁的机制

假设有两个workstation(WS1,WS2),一个Lock Server(LS),以及涉及的文件(F)

Case1:WS1想要写F

Case2:WS2之后也想要写F

可能出现的情形包括以下几种

六、Log and crash recovery

简单来说,通过WAL实现failover

写log流程

details

failure detect

failover

failover步骤如下:

七、Other details

1.问题

论文中指出了几个问题

2.增删机器

可以几乎透明,不影响其他机器地增删机器

3.数据备份

4.timestamp问题

问题:锁的lease检查之后在Frangipani Server,如果网络delay过大,request到达Petal时已经过期,这是不符合预期的

解决:使用maigin Time, 容忍一定的delay

未来的解决:到达Petal的request附带过期时间戳,如果时间没有误差,可以保证正确

5.性能

由于是1997年的论文(比我的年龄还大),并没有关注性能

但是可以看到,随着机器的增加,吞吐近乎线性的增长,这归功于去中心化的设计

以上就是我对于Frangipani主要内容的理解

欢迎一起讨论

标签:log,Petal,写锁,Frangipani,Distributed,Scalable,Server,Lock
来源: https://www.cnblogs.com/jamgun/p/14668522.html