This page looks plain and unstyled because you're using a non-standard compliant browser. To see it in its best form, please upgrade to a browser that supports web standards. It's free and painless.

林中求马 爰居爰处?爰丧其马? 予以求之?于林之下。
2009 七月 05, 星期日 林中求马 | 观点透视 [32] | 聚焦互联网 [27] | 生活轨迹 [20] | 國學精粹 [18] | 散文游记 [14] | 休闲娱乐 [13] | 听我讲故事 [6] | 图片库

«新项目上马了 | 共同奋斗过的兄弟们»

关于文件的缓存

calfen | 26 八月, 2006 20:17 (1491 Reads)

在很多应用中,都有几台机器mount一个文件服务器,操作同一组数据,当一个用户修改了数据之后,另外的用户有时无法立刻读到这个修改,导致读取的数据不正确。

有时会出现奇怪的现象,比如我写一个文件,写好后写个.done文件。会出现.done写好,原文件是0k的现象。


通常会有三个方面的原因:

1,写文件的时候存在缓冲:

程序在读写文件的时候,调用的函数或方法通常都是暂时放在读写缓冲池里的。系统会定时写入磁盘(比如1秒1次)。如果实时性要求高,必须人为调用一下实际写入的函数。c里有fsync(),flush()等,java中也有StreamOut.flush().

2,nfs server export时需要设置sync,不过这是默认值,所以一般不会有问题。

3,mount 的时候一定要加-o sync 默认是-o async

可新建个空文件是实时的,我还没来得及查找原因。

反正我的问题解决了,在第三点上吃亏,耗费了一个小时。默哀

文章真實引用網址:http://blog.luluchina.com/blog/trackback.php?id=105

发表评论

标题

在此添加评论*

称呼*

邮箱地址(可选)

个人主页(可选)



Valid XHTML 1.0 Strict and CSS. Powered by Lifetype 沪ICP备06004858号
Template is designed by calfen, inherited from Template(dabu)designed by Tomex Ou