Database Design and Implementation LRU-k
Database Design and Implementation LRU-k
298
The LRU-K algorithm has the following salient properties: Bayesian statistics to estimate these interarrival times from
● It discriminates well between page sets with different observed references. The system then attempts to keep in
levels of reference frequency (e.g., index pages vs. data memory buffers only those pages that seem to have an in-
pages). Thus, it approaches the effect of assigning page terarrivai time to justify their residence, i.e. the pages with
sets to different buffer pools of specifically tuned sizes. shortest access interarrival times, or equivalent y greatest
In addition, it adapts itself to evolving access patterns, probability of reference. This is a statistical approximation
●
It detects locality of reference within query executions, to the AO algorithm of [COFFDENNl, which was shown
across multiple queries in the same transaction, and to be optimal. The LRU-1 (classical LRU) algorithm can
also locality across multiple transactions in a muM- be thought of as taking such a statistical approach, keeping
user environment. in memory only those pages that seem to have the shortest
● It is self-reliant in that it does not need any external interrmival time; given the limitations of LRU- 1 informa-
hints. tion on each page, the best estimate for interarrival time is
● It is fairly simple and incurs little bookkeeping over- the time interval to prior reference, and pages with the
hed. shortest such intervals are the ones kept in buffer.
The remainder of this paper has the following outline. In
Section 2, we present the basic concepts of the LRU-K ap- Definition 2.1. Backward K-distance bt(p,K).
proach to disk page buffering. In Section 3 we give Given a reference string known up to time t, rl, r2, . . . .
informal arguments that the LRU-K algorithm is optimal rt, the backward K-distance b@K) is the distance backward
in a certain well defined sense, given knowledge of the most to the Kti most recent reference to the page p:
recent K references to each page. In Section 4, we present
simulation ~rformance results for LRU-2 and LRU-K in bt(px) = x, if rt-x has the value p and there have been
comparison with LRU- 1. Section 5 has concluding
exact.1y K-1 other values i with
remarks.
t-xei <t, where ri=p,
In the current paper we take a statistical view of page refer- rl, r2, . . ..rt
ence behavior, based on a number of the assumptions from
the Independent Reference Model for paging, in Section 6.6 Definition 2.2. LRU-K Algorithm. The LRU-K
of [commq. We start with an intuitive formulation; Algorithm specifies a page replacement policy when a
the more complete mathematical development is covered in buffer slot is needed for a new page being read in from disk
[OOW]. Assume we are given a set N = {1,2,. . .. n} of the page p to be dropped (i.e., selected as a replacement vic-
disk pages, denoted by positive integers, and that the tim) is the one whose Backward K-distance, bt(px), is the
database system under study makes a succession of ref- maximum of all pages in buffer. The only time the choice
erences to these pages specified by the reference string: rl, is ambiguous is when more than one page has bt(p~) = CO.
r2, . . ..rt . . . .. where rt = p (p G N) means that term In this case, a subsidiary policy maybe used to select a re-
numbered t in the references string refers to disk page p. placement victim among the pages with infinite Backward
Note that in the original model of [COFFDENNl, the refer- K-distance; for example, classical LRU could be employed
ence string represented the page references by a single user as a subsidiary policy. Note that LRU- 1 corresponds to the
process, so the assumption that the string reflects all refer- classical LRU algorithm.lZ
ences by the system is a departure. In the following discus-
sion, unless otherwise noted, we will measure all time in- The LRU-2 algorithm significantly improves on LRU- 1
tervals in terms of counts of successive page accesses in the because by taking into account the last two references to a
reference string, which is why the generic term subscript is page, we are able for the first time to estimate 1P by mea-
denoted by ‘t’. At any given instant t, we assume that each surement of an actual interarrival between references, rather
disk page p has a well defined probability, ~, to be the than estimating simply by a lower bound of the time back
next page referenced by the system: Pr( rt+ 1 = p ) = ~, for to the most recent referencx. We are using more informa-
all p E N. This implies that the reference string is proba- tion and our estimates are immensely improved as a result,
bilistic, a sequence of random variables. Changing access espcciall y as regards pages that have long reference interar-
patterns may alter these page reference probabilities, but we rival time and should therefore be dropped from buffer
quickly. Note that we make no general assumptions about
assume that the probabilities ~ have relatively long peri-
the probabilistic distribution of 1P. In the full paper
ods of stable values, and start with the assumption that the
probabilities are unchanging for the length of the reference [OOW], we assume an exponential distribution for 1P to
string; thus we assume that bp is independent of t. demonstrate optimality of the LRU-K algorithm. As
already mentioned, we model ~ and therefore 1P as having
Clearly, each disk page p has an expected reference interar- the potential for occasional changes over time, only
rival time, lP, the time between successive occurrences of p assuming that changes are infrequent enough that a
statistical approach to future page access based on past
in the reference string, and we have 1P= bp- 1. We intend
history is usually valid. These assumptions seem justified
to have our database system use an approach based on
for most situations that arise in database use.
299
2.1. Realistic Assumptions In DB Buffering records we can assume references by different processes are
independent.)
The general LRU-K algorithm has two features, peculiar to
the cases where K >2, that require careful consideration to Recall that our purpose in buffering disk pages in memory
ensure proper behavior in realistic situations. The first, is to retain pages with relative long-term popularity to save
known as Early Page Replacement, arises in situations disk 1/0. An example of such long-term popularity is
where a page recently read into memory buffer does not given in Example 1.1, where the 100 B-tree leaf pages are
merit retention in buffer by standard LRU-K criteria, for ex- frequently referenced by concurrently acting transactions.
ample because the page has a bt(p~) value of intinity. We The point about correlated reference-pair types (1) through
clearly want to drop this page from buffer relatively (3) above is that if we take these reference pairs into ac-
quickly, to save memory resources for more deserving disk count in estimating interarrival time lP, we will often arrive
pages. However we need to allow for the fact that a page at invalid conclusions. For example, reference-pair type (1)
that is not generally popular may still experience a burst of may be a common pattern of access, so if we drop a page
correlated references shortly after being referenced for the from buffer right away after the first reference of type (1)
first time. We deal with this concern in Section 2.1.1. A because we have not seen it before, we will probably have
second feature that we need to deal within cases where K > to read it in again for the second reference. On the other
2, is the fact that there is a need to retain a history of refer- hand, after the second reference, with the transaction com-
ences for pages that are not currently present in buffer. mitted, if we say that this page has a short intcrarrival time
This is a departure from current page replacement algo- and keep it around for a hundred seconds or so, this is likely
rithms, and will be referred to as the Page Reference to be a mistake; the two correlated references are insuffi-
Retained Information Problem, covered below in Section cient reason to conclude that independent references will oc-
2.1.2. A pseudo-code outline of the LRU-K buffering algo cur. There are several obvious ways to address the prob-
rithm which deals with the concerns mentioned above is lems of correlated references, the most basic of which is
given in Section 2.1.3. this: the system should not drop a page immediately after
its first reference, but should keep the page around for a
2.1.1. Early Page Replacement and the Problem short period until the likelihood of a dependent follow-up
of Correlated References reference is minimal; then the page can be dropped. At the
same time, interarrival time should be calculated based on
To avoid the wasteful use of memory buffers seen in non-correlated access pairs, where each successive access by
Examples 1.1 and 1.2, LRU-K makes a decisiou whether to the same process within a time-out period is assumed to be
drop a page p from residence after a short time-out period correlated the relationship is transitive. We refer to this
from its most recent reference. A canonical period might be approach, which associates correlated references, as the
5 sewnds. To demonstrate the need for such a time-out, we Time-Out Correlation method; and we refer to the time-out
ask the following question What do we mean by the last period as the Correlated Reference Period The idea is not
two references to a page? We list below four ways that a new; in &OBDEV] an equivalent proposal is made in
pair of references might take place to the same disk page; Section 2.1, under the heading: Factoring out Locality.
the first three of these are called correlated reference pairs,
and are likely to take pla~ in a short span of time. The implication of a Correlated Reference Period of this
kind on the mathematical formulation is simply this. The
(1) Intra-Transaction. A transaction accesses a page, reference string, r 1, r2, . . . , rt, is redefined each time the
then accesses the same page again before cmnrnitting. This most recent reference rt passes through the time-out period,
is likely to happen with certain update transactions, first in order to collapse any sequence of correlated references to a
reading a row and later updating a value in the row. time interval of zero. If a reference to a page p is made sev-
erzd times dtning a Correlated Reference Period, we do not
(2) Transaction-Retry. A transaction accesses a page, want to penalize or credit the page for that. Basically, we
then aborts and is retried, and the retried transaction accesses estimate the interarrival time 1P by the time interval from
the page again for the same purpose. the end of one Correlated Reference Period to the beginning
of the next. It is clearly possible to distinguish processes
(3) Intra-Process. A transaction references a page, then making page references; for simplicity, however, we will
commits, and the next transaction by the same process ac- assume in what follows that references are not distinguished
cesses the page again. This pattern of access commonly by process, so any reference pairs within the Correlated
arises in batch update applications, which update 10 records Reference Period ate considered correlated.
in sequence, commit, then start again by referencing the
next record on the same page. Another alternative is to vary the Time-Out Correlation ap-
proach based on more knowledge of system events. For ex-
(4) Inter-Process. A transaction references a page, then ample, we could say that the time-out period ends after the
a (frequently different) process references the same page for transaction that accessed it and the following transaction
independent reasons. (At least while we do not have a great from the same process commit successfully (to rule out
deal of cmrnmmication bctwceu processes where informa- cases (1) and (3) above), or else after a retry of the first
tion is passed from one process to the other in database transaction has been abandoned (to rule out case (2)); how-
300
ever there might be other cm-related reference pair scenarios that the Retained Information Period should be about twice
not covered by these three cases. Another idea is to allow this period, since we are measuring how far back we need to
the DBA to override a default Correlated Referenee Period go to see two references before we drop the page. So a
by setting a parameter for a particular table being processed. canonical value for the Retained Information Period could
be about 200 seconds. We believe that this is a reasonable
2.1.2. The Page Reference Retained Infor- rule of thumb for most database applications. High-perfor-
mation Problem trtance applications may, however, choose to inercase the
buffer pool beyond the econotnicall y oriented size that
We claim that there is a need in the LRU-K algorithm, would follow from the Five Minute Rule. In such applica-
where K >2, to retain in memory a history of references for tions, the Retained Information Period should be set higher
pages that are not themselves present in buffer, a departure accordingly. To determine a reasonable value, consider the
from most buffer replacement algorithms of the past. To maximum Backward K-distance of all pages that we want to
see why this is so, consider the following scenario in the ensure to be memory-resident. This value is an upper bound
LRU-2 algorithm. Each time a page p is referenced, it is for the Retained Information Period, because no conceivable
made buffer resident (it might already be buffer resident), string of new references to a page after this period will en-
and we have a history of at least one reference. If the prior able the page to pass the criterion for retention in buffer.
access to page p was so long ago that we have no record of
it, then after the Conelated Referenm Period we say that our 2.1.3. Schematic Outline of the LRU-K
estimate of bt(p,2) is infhit y, and make the containing Buffering Algorithm
buffer slot available on demand. However, although we
may drop p from memory, we need to keep history infortna- The LRU-K algorithm of Figure 2.1 is based on the follow-
tion about the page around for awhile; otherwise we might ing data structures:
reference the page p again relatively qnicld y and once again ●
HIST(p) denotes the history control block of page p; it
have no record of prior reference, drop it again, reference it contains the times of the K most recent references to
again, etc. Though the page is frequently referenced, we page p, discounting correlated references: HIST(p,l)
would have no history about it to recognize this fact. For denotes the time of last reference, HIST(p,2) the time
this reason, we assume that the system will maintain his- of the second to the last reference, etc.
tory information about any page for some period after its ● LAST(p) denotes the time of the most recent reference
most recent access. We refer to this period as the Retained to page p, regardless of whether this is a correlated ref-
Information Period. erence or not.
These two data structures are maintained for all pages with a
If a disk page p that has never been referenced before sud- Backward K-distance that is smaller than the Retained
denly becomes popular enough to be kept in buffer, we Information Period. An asynchronous demon process should
should recognize this fact as long as two references to the purge history control blocks that are no longer justified un-
page are no more thau the Retained Information Period der the retained information criterion.
apart. Though we drop the page after the first reference, we
keep information around in memory to recognize when a Based on these data structures, a conceptual outline of the
second reference gives a value of b@,2) that passes our LRU-K algorithm in pseudo-code form is given in Figure
LRU-2 criterion for retention in buffer. The page history 2.1. Note that this outline disregards 1/0 latency; a real
information kept in a memory resident data structure is des- implementation would need more asynchronous units of
ignated by HIST(p), and contains the last two reference work. Also, to simplify the presentation, the outline disre-
string subscripts i and j, where ri = rj = p, or just the last gards additional data structures that are needed to speed up
reference if onl y one is known. The assumption of a mem- search loops; for example, finding the page with the maxi -
ory resident information structure may require a bit of justi- mum Backward K-distance would actually be based on a
fication. For example, why not keep the information about search tree. Despite the omission of such details, it is ob-
the most recent references in the header of the page itself? vious that the LRU-K algorithm is fairly simple and incurs
Clearly any time the information is needed, the page will be little bookkeeping overhead.
buffer resident. The answer is that such a solution would
require that the page always be written back to disk when The algorithm works as follows. When a page already in
dropped from buffer, because of updates to HIST(p); in ap- the buffer is referenced, we need only update HIST and
plications with a large number of read-only accesses to in- LAST for the page. In fact, if the page has been referenced
frequently referenced pages, which could otherwise simply last within the Correlated Reference Period, we need only
be dropped from buffer without disk writes, this would add a update its LAST to extend the ongoing correlated reference
large amount of overhead 1/0. Per@ otherwise a significant gap in reference9 has occurred
and we need to close out the old cm-related reference period
To size the Retained Information Period, we suggest using and start a new one. To close out the old period, we
the Five Minute Rule of [GRAYPUT] as a guideline. The calculate its length in time, LAST(p) - HIST(p,l), a period
costhenefit tradeoff for keeping a 4 Kbyte page p in mem- of correlated-reference time that we need to shrink to a
ory buffers is an interarrival time 1P of about 100 seconds. point. This contraction pulls the earlier HIST(p~) values (i
Returning to discussion of LRU-2, a little thought suggests = 2,...,K) forward in time by this amount. In the same
301
loop, they are being pushed down a slot in the HIST array 3. Optimality of the LRU-K Algorithm Under
to accommodate the new HIST value involved in starting a The Independent Reference Model
new correlated reference paid. Finally LAST is updated to
the current time. In this section, we give informal arguments that the LRU-2
algorithm provides essentially optimal buffering behavior
When a page not in the buffer is referenced, a replacement based on the information given; this result generalizes
victim must be found to free up a buffer slot. Buffer pages easily to LRU-K. A mathematical analysis of the behavior
currently within a correlated-reference period are ineligible of the LRU-K algorithm, including a proof of optimality,
for replacement, and amoung the rest, we select the one is given in [OOW]. In the following, we will assume for
with the maximum backward K-distance, bt(q~), or in the simplicity that the Correlated Reference Period is zero, and
current notation, the minimum HIST(@O. This victim is that this causes no ill effects; essentially we assume that
dropped from the buffer, possibly rtiuiring write-back. correlated references have been factored out.
Th&- a HtST block is initi~ized or updated for the newly
referenced page. As before, we take as a starting point for our discussion the
Independent Reference Model for paging, presented in
‘mcedure to be invoked upon reference to page p at time c Section 6.6 of [COFFDENN]. We take our notation from
this reference and make a few departures from the model
~p is alnmdy in the buffer presented there. We begin with a set N = {1, 2,. ... n} of
km /* update histo~ information of p */ disk pages and a set M = {1, 2, . . .. m} of memory
if t - LAST(p)> Correlated.Reference_Period buffers, 1 s ms n. A system’s paging behavior over time
then /*a new, uncordated reference*/ is described by its (page) reference string: rl, r2, , . . . rt, .
correl_xxiod_of_refd_pge:= LAST(P) - HIST(p,l) . ., where rt = p means that disk page p, p G N, is
fori:=2to Kdo referenced by the system at time t. According to the
HIST(pj) := HIST@i-1) + independent reference assumption, the reference string is a
correl_period_of_refd_page sequence of independent random variables with the common
cd stationary distribution {~ 1, f12,. . . . ~~, one probability
HIST (p,l) := t for each of then disk pages, where Pr(rt = p) = fip, for all P
LAST(P) := t C N and all subscripts t. Let the random variable dt(p)
else /*a ccnmlated reference*/ denote the time interval forward to the next occurrence of p
LAST(p) := t in the reference string after rt; from the assumptions above,
fi dt(p) has the stationary geometric distribution
lse /* select replacement victim*/
tin := t
(3.1) pr(dt(p)= k)= 6P(1 - Bp)k-l, k= 1,2,. ..
for all pages q in the buffer do
if t - LAST(q)> Correlated_Reference_Period
/* if eligible for replacement*/ with mean value 1P = l/~p. Note that because of the
and HIST(q,K) < min stationary assumption, Pr(dt(p) = k) is independent of t.
/* and max Backward K-distance so far */
then Definition 3.1. The AO Buffering Algorithm.
victim:= q Let Ao denote the buffering algorithm that replaces the
tin:= HIST(qK) buffered page p in memory whose expected value 1P is a
ti maximum, i.e., the page for which flp is smallest. %
cd
if victim is dirty then
Theorem 3.2. [COFFDENN] [ADU]
write victim back into the database ii
Algorithm Ao is optimal under the independent reference
/* now fetch the referenced page*/
assumption. %
fetch p into the buffer frame previously held by victim
if HIST@) does not exist
Now consider a reference string o = r 1, r2, . . . . rt, . . ..
then /* initialize history control block “/
allocate HIST@) with some reference probability vector fl = {~ 1, ~2, . . . .
fori := 2 to K do HIST(pj) := O od 13n} for then disk pages of N. To reflect the normal state
else of ignorance concerning reference probabilities with which a
for i:= 2 to K do HIST(pj) := HIST(pj-1) od buffering algorithm starts, we cannot assume foreknowledge
fi of the pi. In this situation, the best we can do is to
IlC3T@,l) := t statistically estimate pi for each page i, based on a history
LAST(p) := t of references to the page. It turns out that the analysis to
i derive a statistical estimate of Pi allows us to derive certain
ordinal properties of these quantities. In particular, given
Figure 2.1. Pseudo-code Outline of the LRU-K Buffering any reference probability vector ~ with at least two distinct
Algorithm, Explained in Section 2.1.3 values, we are able to conclude that for any two disk pages
302
x and y, if bt(x~) < bt(y~), then the page x has a higher These three experiments are discussed in the following three
estimate for probability of reference. subsections.
303
398]. The meaning of the constants a and b is that a frae
tion a of the references accesses a fraction b of the N pages
(and the same relationship holds recursively within the fra&
tion b of hotter pages and the fraction l-b of colder pages).
Table 4.2 compares the buffer hit ratios for LRU-1, LRU-2,
and A() at different buffer sizes, as well as the equi-effective
140 0.29 0.502 0.502 0.502 3.2 buffer size ratio B(l)/B(2) of LRU- 1 versus LRU-2 for a =
160 0.32 0.503 0.503 0.503 2.8 0.8 and b = 0.2 (i.e., 80-20 skew).
180 0.34 0.504 0.504 0.504 2.5
200 0.37 0.505 0.505 0.505 2.3
\
250 0.42 0.508 0.508 0.508 2.2
300 0.45 0.510 0.510 0.510 2.0
40 I 0.53 I 0.61 O.&o ‘ ‘2.0’
60 0.57 0.65 0.677 2.2
350 0.48 0.513 0.513 0.513 1.9
80 0.61 0.67 0.705 2.1
400 0.49 0.515 0.515 0.515 1.9
100 0.63 0.68 0.727 1.6
450 0.50 0.517 0.518 0.518 1.8 0.64
120 0.71 0.745 1.5
140 0.67 0.72 0.761 1.4
Table 4.1. Simulation results of the two pool experiment, 0.70 0.74 0,776
160 1.5
with disk page pools of N1 = 100 pages and N2 = 10,000
180 0.71 0.73 0.788 1.2
pages. The first column shows the buffer size B. The
200 0.72 0.76 0.825 1.3
second through fifth c&unns show the hit ratios of LRU- 1,
I
I
300 I 0.78 I 0.80 I 0.846 1.1-
LRU-2, LRU-3, and AO. The last column shows the equi-
500 0.87 0.87 0.908 1.0
effective buffer size ratio B( 1)/B(2) of LRU- 1 vs. LRU-2.
304
5. Concluding Remarks
Table 4.3. Simulation results on buffer cache hit ratios One of the new concepts of our approach is that page his-
using an OLTP trace. tory information is kept past page residence. But clearly
this is the only way we can guarantee that a page referenced
The performance of LFU was surprisingly good. The LFU with metronome-like regtdarit y at intervals just above its
policy to keep the pages with the highest reference fre- residence period will ever be noticed as referenced twice. It
quency is indeed the right criterion for stable access pat- is an open issue how much space we should set aside for
terns. However, the inherent drawback of LFU is that it history control blocks of non-resident pages. While esti-
never “forgets” any previous references when it compares mates for an upper bound can be derived from workload
the priorities of pages; so it does not adapt itself to evolv- properties and the specified Retained Information Period, a
ing access patterns. For this reason, LFU performed still better approach would be to turn buffer frames into history
significantly worse than the LRU-2 algorithm, which dy- control blocks dynamically, and vice versa,
namically tracks the recent reference frequencies of pages.
Note, however, that the OLTP workload in this experiment The development of the LRU-K algorithm was mostly mo-
exhibited fairly stable access patterns. In applications with tivated by OLTP applications, decision-support applications
dynamically moving hot spots, the LRU-2 algorithm would on large relational databases, and especiall y combinations of
outperform LFU even more significantly. these two workload categories. We believe, however, that
the potential leverage of our algorithm maybe even higher
At large buffer sizes (> 3000), the differences in the hit ra- for non-conventional engineering and scientific databases.
tios of the three policies became insignificant. So one may The reason is that buffer management for such applications
wonder if the superiority of LRU-2 at small buffer sizes is is inherentl y harder because of the higher diversity of aaess
indeed relevant. The answer to this question is in the charaG patterns. The page pool tuning approach outlined in
teristica of the OLTP trace (which is probabl y quite typical Section 1 is clearly infeasible for this purpose. The ap-
for a large class of application workloads). The trace ex- proaches that derive buffer manager hints from the analysis
hibits an extremely high access skew for the hottest pages: of query execution plans are questionable, too, for the fol-
for example, 4090 of the references access only 3% of the lowing reason. Non-conventional database applications of
database pages that were accessed in the trace. For higher the mentioned kind will probably make heavy use of user-
fractions of the references, this access skew flattens out for defined functions, as supported by object-oriented and exten-
example, 9(Y%o of the references access 6570 of the pages, sible database systems. Unlike relational queries, the access
which would no longer be considered as heavily skewed. An patterns of these user-defined functions cannot be pre-ana-
analysis of the trace showed that only about 1400 pages sat- Iyzed if the functions are coded in a general-purpxe pro-
isf y the criterion of the Five Minute Rule to be kept in gramming language (typically, in C++). Thus, advanced
memory (i.e., are re-referenced within 100 seconds, see applications of post-relational database systems call for a
Section 2.1.2). Thus, a buffer size of 1400 pages is acturdly truly self-reliant buffer management algorithm. The LRU-
the economical y optimal configuration. There is no point K algorithm is such a self-tuning and adaptive buffering al-
in increasing the buffer size to keep additional pages once Qorithm, even in the presence of evolving access patterns.
locality flattens out. The LRU-2 algorithm keeps this pool %e believe that LRU-K is a good camt”date to meet the
of 1400 hot pages memory resident, at a memory cost of challenges of next-generation buffer rnauagement.
only two thirds of the cost of the classical LRU algorithm
(i.e., B(l)/B(2) = 1.5 for B=1400).
305
References [KNUTH] D.E. Knuth, The Art of Computer
Programming, Volume 3: Sorting and Searching, Addison-
[ABG] Rafael Alonso, Daniel Barbara, Hector Garcia- Wesley, 1973.
Molina, Data Caching Issues in an Information Retrieval ~S] Raymond Ng, Christos Faloutsos, T. Sellis,
System, ACM Transactions on Database Systems, v. 15, Flexible Buffer Allocation Based on Marginal Gains,
no. 3, pp. 359-384, September 1990. Proceedings of the 1991 ACM SIGMOD Conference, pp.
[ADU] Alfred V. Aho, Peter J. Denning, and Jeffrey D. 387-3%.
Ullmam Principles of Optimal Page Replacement. J. [OOW] Elizabeth O’Neil, Patrick O’Neil, and Gerhard
ACM, v, 18, no. 1, pp. 80-93, 1971. Weikum, The LRU-K Page Replacement Algorithm for
[CHAKA] Ellis E. Chang, Randy H. Katz, Exploiting Database Disk Buffering, Teeh. Report 92-4, Department of
Inheritance and Structure Semantim for Effective Clustering Mathematics and Computer Science, University of
and Buffering in an Object-Oriented DBMS, Proceedings of Massachusetts at Boston, December 1,1992.
the 1989 ACM SIGMOD Conference, pp. 348-357. ~AZDO] Mark Palmer, Stanley B. Zdonik, Fide: A Cache
[CHOUDEW] Hong-Tai Chou and David J. DeWitC An That Learns to Fetch, Proceedings of the Seventeenth
Evaluation of Buffer Management Strategies for Relational International Conference on Very Large Databases, pp. 255-
Database Systems. Proceedings of the Eleventh 264, September 1991.
International Conference on Very Large Databases, pp. 127- ~ITER] Allen Reitec A Study of Buffer Management
141, August 1985. Policies for Data Management Systems. Tech. Summary
[CKS] George Copeland, Tom Keller, and Marc Smith Rep. No. 1619, Mathematics Research Center, Univ. of
Database Buffer and Disk Con@uring and the Battle of the Wiswnsin, Madison, March 1976.
Bottlenecks. Proceedings of the Fourth International [ROBDEV] John T. Robinson and Murtha V.
Workshop on High Performance Transaction Systems, Devarakondrc Data Cache Management Using Frequency-
September 1991. Based Replacement. Proceedings of the 1990 ACM
[COL] C.Y. Chan, B.C. Ooi, H. Lu, Extensible Buffer Sigmetries Conference, v. 18, No. 1, pp. 134-142.
Management of Indexes, Proceedings of the Eighteenth [SACSCHj Giovanni Mario Saceo and Mario Schkolnick:
International Conference on Very Large Data Bases, pp. Buffer Management in Relational Database Systems, ACM
444-454, August 1992. Transactions on Database Systems, v. 11, no. 4, pp. 473-
[COFFDENN] Edward G. Coffman, Jr. and Peter J. 498, December 1986.
Denning Operating Systems Theory. Prentice-Hall, 1973. [SHASHA] Dennis E. Shasha, Database Tuning: A
[DANTOWS] Asit Dan and Don Towsley: An I?rineipled Approach, Prentice Hall, 1992.
Approximate Anal ysis of the LRU and FIFO Buffer [STONl Michael Stonebraker Operating System Support
Replacement Schemes. Proceedings of the 1990 ACM for Database Management. Communications of the ACM,
Sigmetrics Conference, v. 18, No. 1, pp. 143-149. v. 24, no. 7, pp. 412-418, July 1981.
@XNNING] P. J. Denning: The Working Set Model for ~ENGGUNfj J.Z. Teng, R.A. Gumaer, Managing IBM
Program Behavior. Communications of the ACM, v. 11, Database 2 Buffers to Maximize Performance, IBM
no. 5, pp. 323-333, 1968. Systems Journal, v. 23, n. 2, pp. 211-218, 1984.
~ER] Wolfgang Effelsberg and Theo Haerder: PC-A] Transaction Processing Performance Council
Principles of Database Buffer Management. ACM (TPC): TPC BENCHMARK A Standard Specification.
Transactions on Database Systems, v. 9, no. 4, pp. 560- The Performance Handbook for Database and Transaction
595, December 1984. Processing Systems, Morgan Kaufmanu 1991.
[@?NS] Christos Faloutsos, Raymond Ng, and Times ~UCORN] P.S. Yu, D.W. Cornell, Optimal Buffer
Sellis, Predictive Load Control for Flexible Buffer Allocation in a Multi-query Environment, Proceedings of
Allocation, Proceedings of the Seventeenth International the Seventh International Conference on Data Engineering,
Conference on Very Large Data Bases, pp. 265-274, PP. 622-631, April 1991.
September 1991.
[GRAYPUT] Jim Gray and Franco Putzolu: The Five
Minute Rule for Trading Memory for Disk Accesses and
The 10 Byte Rule for Trading Memory for CPU Time.
Proceedings of the 1987 ACM SIGMOD Conference, pp.
395-398.
US] Laura M. Haas et al., Starburst Mid-Flight: As
the Dust Clears, IEEE Transactions on Knowledge and Data
Engineering, v. 2, no. 1, pp. 143-160, March 1990.
[JCL] R. Jauhari, M. Carey. M. Livny, Priority-Hints: An
Algorithm for Priority-Based Buffer Management,
Proceedings of the Sixteenth International Conference on
Very Large Data Bases, August 1990.
306