For simplicity, consider a single-path hierarchy of ARC caches (Figure 6). Theoretically, the caches could pass the marginal utility of the and lists to lower caches which could dynamically adapt at each cache level to equalize the utility across the hierarchy. However, it can be challenging to adapt in a stable way for both and lists at each level. We found a simple policy that works very well for ARC. For traffic destined for lists, at each cache is set to a fixed value . Instead of the cache life, the of the list is passed to lower caches, where is the fraction of the cache occupied by . Merely using the cache life for list did not fare well, compared to DEMOTE-ARC, in unlimited bandwidth cases. The for the lists is dynamically adapted at each level so as to equalize across the hierarchy (Lines 41-43).
Another hint called the is used along with read requests and replies to indicate that the page should be stored in a list as it has been seen earlier (Line 46). If any cache decides to keep the page (Line 59), it creates the page in if is true; else it creates it in .