Sprite缓存策略总结

本文深入探讨了Sprite File System的缓存设计,包括写回策略(延迟写)、缓存一致性(NFS策略与Sprite策略),以及缓存特点。还介绍了将Sprite的缓存一致性思想移植到NFS的实现,涉及到NFS的客户端和服务器端的修改,如回调机制和延迟写策略,以及服务器状态表的维护。
摘要由CSDN通过智能技术生成

Sprite File System是早期比较有特色的分布式文件系统。与NFS相比,Sprite File System在服务器端和客户端都设置缓存,大大提高了系统性能。它通过简单的读写锁保证整个系统的缓存一致性,并且通过和虚拟存储部分交互,尽量多地缓存数据。本文主要调研了Sprite File System缓存的设计方案,以及讲SFS缓存一致性的思想移植到NFS的具体做法。

1 Sprite File System缓存设计

1.1 写回策略

缓存的对磁盘或服务器的写回机制有两个策略可以采用:写直达和延迟写。写直达(write through),就是当数据被缓存的话,就立即写回。它的优势在于稳定性,NFS采用这样的方式,缺点是写性能低下。延迟写(delay write-back),数据被更改时仅写入cache,在以后的某个时间再写回磁盘或服务器。它有两个优势,写的速度快,写回前可能被删除(在某一特定环境下),缺点是可靠性差。Sprite采用的时延迟写策略。

1.2 缓存一致性

1.2.1 NFS策略

NFS采用的策略:当文件关闭时所有的数据都写回服务器端;如果一个客户端打开了被其他客户端缓存的文件,所有的缓存都将被更新为新的版本。在顺序写共享(sequential write sharing)的情况下,一个被多个客户端共享的文件不会同时被不同的客户端进行读和写操作,每个客户端看到的都是文件的最新版本。但是,如果一个NFS或者 Andrew的文件被一些客户端同时打开,并且同时对文件进行了修改,系统将会警告用户不允许这种共享,我们称作实时写共享(concurrent write sharing)。

1.2.2 Sprite策略

Sprite支持两种共享模式。对于实时写共享的处理是,系统通过锁和其他机制的操作,使得所有客户端的读和写操作以一个合理的方式进行。

实时写共享:当一个文件被不同的用户打开,并且至少有一个用户对此文件进行写操作,那么这个文件被多个客户端实时写共享。Sprint通过禁止用户缓存此文件来解决这个问题,使得所有对此文件进行读和写的操作必须经过服务器。当服务器识别到某个文件非实时写共享即将发生时,它采取两项操作:(1)、它通知所有打开这个文件进行那个写操作的用户,告诉它们将所有的脏数据写回服务器。这样的客户端至多有一个。(2)、服务器通知所有已打开文件的用户&#

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值