Chinaunix首页 | 论坛 | 博客
  • 博客访问: 72858
  • 博文数量: 172
  • 博客积分: 2047
  • 博客等级: 大尉
  • 技术积分: 1745
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-19 15:23
文章分类

全部博文(172)

文章存档

2011年(72)

2010年(100)

我的朋友

分类: C/C++

2011-03-29 17:52:38

7:48:08[INFO][8390  ][-1226060944][       proxyfs_open],new file fi 152535600 file: /aa ,Size:229 oflags:0
17:48:08[INFO][8392  ][-1226060944][      proxyfs_write],start fi->fh 152535600 /aa 229 7 flags:1
17:48:08[INFO][8392  ][-1226060944][      proxyfs_write], initcfile
17:48:08[INFO][8392  ][-1226060944][      proxyfs_write],end /aa 229 7 file->Size:236
17:48:08[INFO][8392  ][-1251382416][    proxyfs_release],start file: /aa,Size:236 flags:0
17:48:08[INFO][8392  ][-1251382416][      send_data_pre], start get File md5  
17:48:08[INFO][8392  ][-1251382416][      send_data_pre], get File md5 fc9a9c6c3b0ffd5903258a1e1d93a5cb
17:48:09[INFO][9390  ][-1226060944][       proxyfs_open],from map fi 152535600 file: /aa ,Size:236 oflags:0
17:48:09[INFO][9514  ][-1251382416][    proxyfs_release],end file: md5 fc9a9c6c3b0ffd5903258a1e1d93a5cb ,Size:236
 
17:48:09[INFO][9514  ][-1217528976][      proxyfs_write],start fi->fh 152535600 /aa 229 4 flags:1
17:48:09[INFO][9514  ][-1217528976][      proxyfs_write], initcfile
17:48:09[INFO][9514  ][-1217528976][      proxyfs_write],end /aa 229 4 file->Size:236
17:48:09[INFO][9515  ][-1226060944][    proxyfs_release],start file: /aa,Size:236 flags:0
17:48:09[INFO][9515  ][-1226060944][      send_data_pre], start get File md5  
17:48:09[INFO][9515  ][-1226060944][      send_data_pre], get File md5 b1fbe5db983b507bafd91d9fd362258b
17:48:10[INFO][10636 ][-1226060944][    proxyfs_release],152535600 ,152535600  
17:48:10[INFO][10637 ][-1226060944][    proxyfs_release],end file: md5 b1fbe5db983b507bafd91d9fd362258b ,Size:236


比较健康的状态。一次写进入 release状态,open 操作到达。获取了文件对象。增加了链接。
release 发送完数据,不删除对象。在release 释放之前也不会write write 也锁住了。
write 时会重新设置file 对象。然后完成下一次的操作。

不足:文件对象是在release 时获取的,从map 中,那么如果这个时候其他地方有修改是不会采用修改后的
对象版本的,需要在filemap 和 dir 获取之间选择一个版本,
但是没有明确的信息知道那个版本是最新的。
这种情况:在release 到了服务器,然后服务器接受了另外一个修改,然后本地修改的是自己release 的版本。
最合理的情况:修改的是服务器上的版本。
但是这个问题就和目录结构缓存一样是没有办法避免的。把缓存时间设置到最低。
每次请求去找服务器要最新数据。
继续延伸: 就算是open 获取的是最新数据,但是在write 时,数据已经被修改过了。
除非在每次操作时都设置锁,让其他的该动不能进行。
但这就像是理想与现实的关系。现实情况下,我们不需要达到这样的精度。这种情况有可能发生。但是不会造成问题。在别人没有提出这样严格需求的情况下。

阅读(403) | 评论(0) | 转发(0) |
0

上一篇:write 时间 消耗分析

下一篇:文件系统

给主人留下些什么吧!~~