To facilitate the adaptation, PROMOTE requires a very simple interface to periodically receive adaptation information like the cache life (the timestamp difference between the MRU and LRU pages in the cache) of the next higher cache(s). At regular intervals, each cache, other than the lowest, sends the hint to the next lower cache (Lines 1-3), using which, the is computed (Lines 23, 41-43). The goal is to adapt in such a way that the approaches (a value that implies that the usefulness of pages evicted from the higher cache is the same as of those from the lower cache). If the higher cache has a larger life ( ), is increased, else it is decreased. Since there is a lag between the adaptation in and its impact on the , the recomputation of (Lines 4-17) is done only on alternate times the hint is received (Line 3). Further, if the previous adaptation of is found to have reduced the separation of and by a reasonable fraction (Lines 7-10), then no further adaptation is done. To avoid any runaway adaptation, needs to be carefully adapted so that the adaptation is proportional to the difference between and and also is slower when close to extreme values of 0 and (Lines 11-12). To start off in a fair fashion, is initialized according to the sizes of the caches. Since the higher caches usually demonstrate higher hit rates than the lower caches, we forbid to go beyond the ratio thus determined (Lines 13-14).
Let us examine some examples of PROMOTE in existing cache management policies: