6 ms·
is there any known algorithm that looks at the relationship between cached items? Ie. File A is accessed, then B, then C, then D, then E, and so on. A would a h
by pencilcode 14y ago
is there any known algorithm that looks at the relationship between cached items? Ie. File A is accessed, then B, then C, then D, then E, and so on. A would a have stronger relationship to B, one step away, than to D, two steps away. So if we later access file A, the algorithm would know there's a higher probability that we need File B next, so it could check if file B is in the cache and if not, prefetch it and save it in the cache.
- eblume 14y agoSeems 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.)
- azth 14y agoDidn'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?