I've thought of my next feature request. Speaking with other users, especially those in high volume near 24x7 environments, I often hear the lament that after a server restart it can take many minutes and often hours before the server reaches its normal steady state with active rows in the cache and all data dictionary entries, data distributions, stored procedures, common statements, and other cached objects loaded up. During this ramp-up period performance is significantly reduced since most queries require a physical IO to read in the pages that are needed and possibly fill in other cache entries.
Based on this lament, my feature request is that in the background, after every checkpoint, the engine dumps out the list of cached data and index page addresses so that during a restart the engine can - optionally - read in the list and repopulate the cache. If this goes through the normal page processing algorithms I expect that the data dictionary and distribution caches can be filled in as well. The statements cache and stored procedure caches may have to be handled separately, though the procedure cache should be simple enough if the procnames are saved along with the page addresses at checkpoint time. The statement cache may be the costly one since the entire statement texts will have to be saved and restored to memory, but this is also doable. At least from an outsider's point of view.
I ran this by some of the Informix development team last night here at IOD and no one thought that this one was difficult to pull off. The only thing we lack is a strong user case. What do YOU think? Is this a useful feature?