Frangipani论文阅读笔记

论文地址:https://pdos.csail.mit.edu/6.824/papers/thekkath-frangipani.pdf

一、概述

理想的分布式文件系统应该是可以提供一致性的文件访问、存储可以按需扩容、性能可以横向扩展、最小化人工维护成本。Frangipani就是这样的一个分布式文件系统。

Frangipani提供以下几个特性:

  1. 所有用户都具有文件相同的一致性视图
  2. 运行时增加服务器,服务器数量变更不会打乱运行的服务
  3. 管理员增加新用户不需要担心存储的分配
  4. 一致行备份、在线备份、允许用户快速访问误删除的文件
  5. 高容错性

二、系统架构

在这里插入图片描述

上层的frangipani server通过petal访问文件,并且petal使用lock service保证file的一致性。

在这里插入图片描述

此图frangipani server没有画出来,它可能跟petal在一台机器,也可能没有。同时lock service是独立与其它系统的,但是也可以和其它系统一起运行。

用户将修改的数据暂存到本地直到下一次系统同步被调用,他们的redo log会被存到petal的不同位置,用户崩溃恢复。

三、磁盘布局

在这里插入图片描述
frangipani利用petal大且稀疏的磁盘空间简化了它的数据结构。

四、日志与恢复

日志

  1. frangipani采用WAL的方式,在写数据以前先写日志
  2. log在petal有特定的位置保存
  3. 每个日志有LSN,并且有version number用于recovery
  4. log是保存在一个环型的存储空间上,当环满了,会擦除前面25%的部分
  5. 每个日志目前最大是128KB

崩溃恢复

当一台frangipani崩溃后,崩溃的server的client或者lock service会检测到。recovery demon会被给予lock和log,recovery demon按序执行未完的日志,只要在petal是可用的情况下,可容忍无限的frangipani server崩溃。

确保logging和recovery work的细节

  1. 通过lock protocal确保对相同数据的请求是串行的,在获取write lock之前确保之前的脏数据被写到petal
  2. 为了防止某些block被重复写,因此在block中加入version number(log中也有),所以当将要写入的log的version number小于block中的时,则不写入此log
  3. lock service确保只有一台server在执行recovery
  4. log会有crc校验

五、缓存一致

frangipani通过多读/单写的锁来实现同步。当lock service检测到有冲突的lock时,当前的holder会被要求释放lock。
当write lock被释放时,脏数据会被写到磁盘。read lock被释放时,会清空自己的缓存。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值