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.
联系方式
最近回复
我的链接
琴瑟友之 待阅颜如玉
藏书黄金屋
|
关于文件的缓存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 发表评论 |