今天阅读NFS v3的代码,一番探究后,对其若一致性有了一点点了解,记录如下,以备查阅。
从代码层面来看,其若一致性是通过struct wcc_data 这个数据结构来实现。
wcc_data是由server返回给client的回复操作时包含的,其中包含两个字段:
pre_op_attr 和 post_op_attr,这两个结构体记录了server端在响应client端操作前后的属性值,client端根据pre_OP_attr与本地cache的对比,来判断cache的有效性,利用post_op_attr来更新本地的属性值。
这也就是NFSV3所谓的机会更新。
对于client端的cache和VFS层所维护的一些结构对象,如inode dentry,之间的关系,还是不是很清楚,有待于进一步探索。