Seems like a natural place for an application of a 1st-order markov model - one state for every entity (file), record the load events from each previously loaded file to the next file, and then your cache can predictively load a set of files by computing the most likely transitions.
Going higher than 1-order might make it even smarter, but with the cost of taking more memory (increasing the likelyhood of thrashing).
It actually seems like a very novel and interesting approach, although I don't know if it's been done before.
(Quick googling reveals that there is a LOT of work done on this approach, but I don't have the time right now to see if it's a good one or not.)
Didn't Microsoft introduce something similar in Windows Vista, where it tries to keep the system cache occupied in order to have a better response time for the user?
Comments
Seems like a natural place for an application of a 1st-order markov model - one state for every entity (file), record the load events from each previously loaded file to the next file, and then your cache can predictively load a set of files by computing the most likely transitions.
Going higher than 1-order might make it even smarter, but with the cost of taking more memory (increasing the likelyhood of thrashing).
It actually seems like a very novel and interesting approach, although I don't know if it's been done before.
(Quick googling reveals that there is a LOT of work done on this approach, but I don't have the time right now to see if it's a good one or not.)
Didn't Microsoft introduce something similar in Windows Vista, where it tries to keep the system cache occupied in order to have a better response time for the user?