Tom "Mad Dog" Yergeau wrote:
This application generates reports by generating directories. Each report can generate hundreds of directories on the filer. I don't know why it works this way but I'm told changing it will be quite a headache. So, all these directories take up lots and lots of inodes, but no real space on the filer.
Crikey, thats a hell of a lot of reports. I thought what we did was mad: We need to store status information for each and every web server on the planet. Rather than store it in a huge database with tiny records we do as a zero-length file. Basically all the information we need (status flags and various time information) can be stored as the files permissions and the files ctime and mtime. The benefit for us of this route is that to check the status of a server we just have to do:
[create hash from host to give path] stat(/whatever/hash/host)
I guess this is one of the things that we can only consider doing because we have a filer. On anything else it would be sheer lunacy and we would have to use a database and live with the higher overhead.
Chris