There has also been work on the problem of sharing
a cache among multiple competing client applications
[5, 12, 18, 20]. Often, the goal of these techniques is
to achieve specific quality-of-service objectives for the
client applications, and the method used is to somehow
partition the shared cache. This work is largely orthogo-
nal to CLIC, in the sense that CLIC can be used, like any
other replacement algorithm, to manage the cache con-
tents in each partition. CLIC can also used to directly
control a shared cache, as in Section 6.4, but it does not
include any mechanism for enforcing quality-of-service
requirements or fairness requirements among the com-
peting clients.
The problem of identifying frequently-occurring items
in a data stream occurs in many situations. Metwally
et al [14] classify solutions to the frequent-item prob-
lem as counter-based techniques or sketch-based tech-
niques. The former maintain counters for certain indi-
vidual items, while the latter collect information about
aggregations of items. For CLIC, we have chosen to use
the Space-Saving algorithm [14] as it is both effective
and simple to implement. A recent study [7] found the
Space-Saving algorithm to be one of the best overall per-
formers among frequent-item algorithms.
8 Conclusion
We have presented CLIC, a technique for managing a
storage server cache based on hints from storage client
applications. CLIC provides a general, adaptive mech-
anism for incorporating application-provided hints into
cache management. We used trace-driven simulation to
evaluate CLIC, and found that it was effective at learn-
ing to exploit hints. In our tests, CLIC learned to per-
form as well as or better than TQ, an ad hoc hint based
technique. In many scenarios, CLIC also performed sub-
stantially better than hint-oblivious techniques such as
LRU and ARC. Our results also show that CLIC, unlike
TQ and other ad hoc techniques, can accommodate hints
from multiple client applications.
A potential drawback of CLIC is the space overhead
that is required learning which hints are valuable. We
considered a simple technique for limiting this over-
head, which involves identifying frequently-occurring
hints and tracking statistics only for those hints. In many
cases, we found that it was possible to significantly re-
duce the number of hints that CLIC had to track with
only minor degradation in performance. However, al-
though tracking only frequent hints is a good way to re-
duce overhead, the overhead is not eliminated and the
space required for good performance may increase with
the number of hint types that CLIC encounters. As part
of our future work, we are using decision trees to gener-
alize hint sets by grouping related hint sets together into
a common class. We expect that this approach, together
with the frequency-based approach, can enable CLIC to
accommodate a large number of hint types.
9 Acknowledgements
We are grateful to Martin Kersten and his group at CWI
for their assistance in setting up TPC-H on MySQL,
and to Aamer Sachedina and Roger Zheng at IBM for
their help with the DB2 modifications and trace collec-
tion. Thanks also to our shepherd, Liuba Shrira, and the
anonymous referees for their comments and suggestions.
This work was supported by the Ontario Centre of Excel-
lence for Communication and Information Technology
and by the Natural Sciences and Engineering Research
Council of Canada.
References
[1] ARI, I., AMER, A., GRAMACY, R., MILLER,
E. L., BRANDT, S., AND LONG, D. D. E. ACME:
Adaptive caching using multiple experts. In Work-
shop on Distributed Data and Structures 4 (WDAS)
(Mar. 2002), Carleton Scientific, pp. 143–158.
[2] BAIRAVASUNDARAM, L. N., SIVATHANU,
M., ARPACI-DUSSEAU, A. C., AND ARPACI-
DUSSEAU, R. H. X-RAY: A non-invasive
exclusive caching mechanism for RAIDs. In
Proceedings of the 31st Annual International
Symposium on Computer Architecture (ISCA ’04)
(June 2004).
[3] BANSAL, S., AND MODHA, D. CAR: Clock
with adaptive replacement. In Proc. of the 3nd
USENIX Symposium on File and Storage Technolo-
gies (FAST’04) (Mar. 2004).
[4] BELADY, L. A. A study of replacement algorithms
for virtual-storage computer. IBM Systems Journal
5, 2 (1966), 78–101.
[5] BROWN, K. P., CAREY, M. J., AND LIVNY, M.
Goal-oriented buffer management revisited. In Pro-
ceedings of the 1996 ACM SIGMOD International
Conference on Management of Data (June 1996),
pp. 353–364.
[6] CHEN, Z., ZHANG, Y., ZHOU, Y., SCOTT, H.,
AND SCHIEFER, B. Empirical evaluation of multi-
level buffer cache collaboration for storage sys-
tems. In Proceedings of the International Confer-
ence on Measurements and Modeling of Computer
Systems (SIGMETRICS’05) (2005), pp. 145–156.