The goal of sequential detection is to automatically uncover a sequential access pattern. Such a pattern is not obvious to discover because of possible interleaving between various sequential streams and pauses between consecutive requests by a single stream, namely, the think time between requests.
The basic idea is to maintain a sequential detect counter with every track, and to use a parameter seqThreshold that can be set differently depending upon whether aggressive or conservative sequential detection is desired. The counter is updated as follows. On a hit or miss to track whose counter is uninitialized, if track is present in the cache, then set the counter of track to minimum of seqThreshold or one plus the counter value for track . If track is not present in the cache, set the counter for track to . Once initialized, the counter value for a track is not changed unless it reenters the cache after an eviction. When the counter equals seqThreshold, the track is termed as a sequential track. If a track gets designated as a sequential track on a miss, then we say that a sequential miss has occurred.