Linux操作系统下的实时数据镜像详解(2)
文章作者 100test 发表时间 2007:03:14 16:29:31
来源 100Test.Com百考试题网
使之智能工作
那么,我们怎么知道文件发了变化呢?我想M$ 的Windows程序开发员会这么说:
我们可以每隔几秒就搜寻目标目录一次,将其中的文件与缓存中保存的文件做比较,看文件时间戳及大小是否发生了变化。对,没错,是这样。
这是种轮询的工作方式,它的问题在于查找并比较文件的时间戳和大小,它的代价是昂贵的。你能想象在WEB服务器上每隔5秒就运行一次”ls –lR /somedirectory”造成的后果吗?
最好的方法应该是:文件被改动的时候能够有人告诉我们,这样我们可以采取相应的动作。这正是”IMON”要做的工作。
什么是FAM
fam就是文件变更监视模块,它向应用程序提供了一组API,当指定的文件或目录发生变化时,由其向应用程序发出通知。
FAM由两部分组成:后台守护程序fam,它负责接收请求和发送通知;库文件libfam,客户端应用程序用它来与FAM通信。
若远程主机打开了受监视的文件,本地的fam会与远程主机的fam联系,将请求发送给远程fam。