Downgrading PIA did not address the issue.
However, I think there is some sort of misunderstanding on my part as the to the real issue and I apologize for that.
Essentially, it looks like Boost is working as intended, if on-demand is turned out.
It appears that all the rrd info are being inserted into the database and then boost writes the out to disk. For the short term, this actually works for us to reduce the I/O.04/23/2010 09:40:07 AM - SYSTEM STATS: Time:5.5949 Method:spine Processes:4 Threads:40 Hosts:892 HostsPerProcess:223 DataSources:14892 RRDsProcessed:0
04/23/2010 09:40:15 AM - SYSTEM BOOST STATS: Time:7.7700 RRDUpdates:14784
What is not working is on-demand - once we turn it out, every request we made returns as a broken image.
My colleague and I have browse though the code and it looks like its not likely a boost problem. So whatever problem it is, it is outside of boost.
What is supposed to happen when you enable on-demand? Is cacti supposed to wait until boost writes to file or does it try to read the file immediately? If the former, what return code is it supposed t get from boost when it is done writing the rrd file to disk?