On Caching Search Engine Query Results
Evangelos P. Markatos
Institute of Computer Science (ICS)
Foundation for Research & Technology - Hellas (FORTH)
P.O.Box 1385
Heraklio, Crete, GR-711-10 GREECE
tel: +30 81 391 655, fax: +30 81 391 661
markatos@csi.forth.gr
In Proceedings of the 5th International Web Caching and Content Delivery Workshop, May 2000
Abstract:
In this paper we explore the problem of
Caching of Search Engine Query Results in order to reduce the
computing and I/O requirements needed to support the
functionality of a search engine of the World-Wide Web.
We study query traces from the EXCITE search engine and show that
they have a significant amount of temporal locality: that is,
a significant percentage of the queries have been
submitted more than once by the same or a different user.
Using trace-driven simulation we demonstrate that medium-size
caches can hold the results of most of
the frequently-submitted queries.
Finally, we compare the effectiveness of static and dynamic caching
and conclude that although dynamic caching can use large caches
more effectively, static caching can perform better for (very) small caches.
Search Engines have become a popular way of finding information
on the World Wide Web.
A large number of users reach web sites
via a Search Engine. As the web becomes larger, individual sites
become more difficult to find, and thus the percentage of users
that reach web sites after querying a Search Engine will probably increase.
Besides people, computer programs
(usually called agents, robots, or spiders)
frequently access Search Engines searching for
information [20].
To reduce the load on busy web servers (including busy search engines)
web server accelerators are frequently used [7].
These accelerators are high-performance computers
placed in front of a workstation cluster
which hosts the web servers.
The accelerator presents a single IP address to web clients,
effectively hiding the number of workstations that host the web server.
If the requested page is found in the accelerator's
cache, it is returned to the client. Otherwise, the request
is forwarded to one of the workstations in the cluster
[26].
The make sure that accelerators are not a performance
bottleneck, they are usually hosted on specialized
computers with highly optimized main memory caching
and networking software that can sustain several thousand
requests per second.
Although accelerators have been shown to result in large
cache hit rates for static data [14], little is known
about their effectiveness on caching dynamic data.
Given that the generation dynamic data is a
processor-intensive operation on most web servers, caching of dynamic
data at the accelerator may turn out to have significantly
higher benefits than caching static data [5].
In this paper we explore the effectiveness of dynamic data
caching in accelerators used in front of Search Engines.
Although it improves performance,
caching query results for a long time may affect the ``freshness''
of the data returned.
However, caching query results even
for several days may not noticeably contribute
to staleness of data: the data (i.e. URLs)
returned by Search Engines are already
several weeks old; caching them for a few more hours (or even days)
does not affect their freshness.
Even in the rare cases where freshness of data is of crucial importance,
accelerators provide mechanisms that remove data from their cache
[14], making sure that they never deliver stale data to
interested clients.
In this paper we show that it is possible to
cache Search Engine results using moderate amounts of memory and
small computational overhead.
The contributions of the paper are:
- We study the traces of a popular Search Engine (Excite) and
show that there is a significant locality in the queries asked,
that is, 20%-30% of the queries have been
previously submitted by the same or a different user.
- Using trace-driven simulation we show that medium-sized accelerator caches
are enough to hold the results of most of the repeatedly submitted queries.
- We compare caching of the most popular queries (static caching)
with caching of the most recently accessed queries (dynamic caching)
and show that static caching of query results is promising approach
for small caches, while dynamic caching has significantly better
performance for large caches.
The rest of the paper is organized as follows:
Section 2 places our work in context and
summarizes related work.
Section 3 analyzes the query trace and shows
that there exists a significant amount of locality in the queries
requested. Based on trace-driven simulations
section 3 presents the performance benefits of
of query result caching.
Finally, section 4 summarizes and concludes
the paper.
Previous Work
Caching documents to reduce access latency is
extensively used on the web.
Most web browsers cache documents in the client's main memory
and disk [1].
To improve cache hit rates by aggregating the requests of
several users, caching proxies are widely used.
Proxies employ large caches which they use to serve
a stream of requests coming from a large number of clients.
Since even large caches may eventually fill up,
cache replacement policies have been the subject of intensive
recent research. One of the first cache replacement policies considered was
LRU (Least Recently Used) and its variations.
LRU is based on the heuristic that the documents not used recently
will probably not be requested in the near future.
After studying the access patterns of several web clients, it was
realized that caching small documents may result in better
performance (especially in a memory-limited environment).
Thus, LRU was extended with heuristics that favor caching of
small documents, either by precluding caching of large documents
[1,18], or by eagerly removing
large documents [1,27,35].
Given that clients experience different latency to different servers,
cache replacement policies may also take network
latency into account in order to avoid replacing documents that may take
a lot of time to download [30,37].
Some policies aggregate all the above factors (access recency, size, latency)
into a ``weight'' or ``value'' and try to keep in the cache the documents
with the largest values [4,15].
To improve hit rates even further, cache proxies are
frequently organized into a hierarchy that can achieve
better performance [6,17].
Other approaches identify popular documents which are then cached
for a predefined period of time (usually a day or so) [29].
Finally, some caches employ intelligent
prefetching methods to improve the hit rate even further
[3,8,9,13,19,25,34].
Spink et al. have analyzed the transaction logs of queries posed by users
of EXCITE, a major Internet Search Engine [11,32].
They have focused on
how do users search the web, and on what do they search on the web.
They present a large number of findings.
Among the most interesting ones are that
users usually ask short queries and
view no more than 2-3 pages of the query's results.
C. Silverstein et al. have studied a very large log of
AltaVista Queries [31].
Among other results, they report that the average
frequency of the queries in their trace was 3.97. That is,
each query was submitted four times (on the average), which implies that
caching Search Engine results may achieve a hit rate up to
75% (for large caches). This is particularly encouraging for our
approach since it demonstrates that there is an overwhelming amount of
locality in Search Engine queries.
Query result caching has been previously studied
in order to evaluate new queries based on the results of
previous queries with similar constraints, or
in cases when the source database
is not readily available [2,33].
The focus of previous work in query result caching
was to reduce the cost of query execution
(communication and computation overhead)
in a distributed database system by caching the results of
``similar queries'', while the focus of our
work is to reduce server load by employing a server-side
query result cache.
Although dynamic data used to comprise a small portion of all web accesses,
recent results suggests that as many as 40% of all web accesses
are to dynamic data [36].
Challenger et al. report that it is possible to cache dynamic data,
esp. in very popular athletic sites, like those of the
Olympic games [5,10].
Carefully caching and invalidating data at the 1998 Olympic games
web server allowed it to reach hit rates close to 100%.
By transferring only the differences between the new version and the old
version of a web document, Mogul et al. manage to reduce the number of
data need to be transferred from servers to proxies
even for dynamically generated data
[22].
Cao et al. suggest a novel architecture where proxies
will be allowed to cache dynamically generated documents,
provided that each time a proxy accesses its local copy of
the dynamic document it executes some code provided by the
original server of the dynamic document [24].
This code may verify the validity of data, add some
advertisements to data, or process the data in some appropriate way.
In their subsequent work, Lao et al. propose to use active caching
in order to allow proxy servers to cache a search engine's query
results [16].
W Meira Jr. et al. propose the use of ``cache plugins''
on special cache servers that reconstruct dynamic objects based
on static components [21]. These plugins are provided by the
original servers of dynamically generated documents.
We view our work as complementary to [16,21],
since we focus on caching at the web server (search engine) level,
while [16,21] focus on caching at the proxy level.
Summarizing, although there has been significant work on web
caching, there has been no previous
systematic study on the existence of locality in Search Engine queries,
and of evaluating the performance of caching those queries' results.
In this paper we show Search Engine's queries have a significant amount
of locality and evaluate several caching methods that exploit
the existing locality.
Experiments
We use query traces from the EXCITE search engine
(www.excite.com) gathered on Sep 16th 1997.
The traces contain about one million searches.
Of them, 927,010 are keyword-based queries and the rest are requests
for ``similar'' documents 1.
Each entry in the trace file is actually a request by a specific user for a
particular page of the results of a keyword-based search (query).
Thus, when a user requests the first page of results
of a given keyword-based search this represents one
trace record in the log file. When the same user requests
the second page of results
of the same keyword-based search, this represents another
trace record in the log file, etc.
Thus, from now on, when we say query, we actually mean
``a particular page of the results of a given keyword-based search''.
Since the trace file did not contain the number of results
returned by each query, queries that generate less
than a page of results are treated as queries that generate
one page of results (which is roughly 4 Kbytes large).
In this sense our results
are somewhat pessimistic: we overestimate the amount of cache
needed to hold query results.
To evaluate the effectiveness of caching,
the query traces are fed into a trace-driven web cache simulator. 2
During its execution, the simulator gathers a variety
of statistics, the most important being the cache hit ratio:
the percentage of queries that found their results in the cache.
Accelerator caches have limited size and will need to replace some of their
data when they fill up. We will study several cache replacement algorithms
in order to evaluate which is the most appropriate for such web caches.
The algorithms we study include:
- LRU: the algorithm replacement the least recently used
document (query results) from the cache.
- FBR: the algorithm
that takes into account both the recency and frequency of access
to a page [28].
It can be summarized as follows: ``(1)
the blocks in the cache are totally ordered in the same fashion as a
cache using LRU replacement; (2) the cache is divided into three parts,
a new section containing the most-recently used blocks,
an old section containing the least-recently used blocks,
and a middle section between the new and the old sections;
(3) reference counts are only incremented for blocks that are not
in the new section; and
(4) on a miss, the block with the smallest reference count in the
old section is replaced (with the least-recently-used such block selected
if there is more than one).
- LRU/2: the algorithm replaces the page whose penultimate
(second-to-last) access is least recent among all
penultimate accesses [23].
3
- SLRU: the algorithm combines both the
recency and frequency of access when making a replacement decision.
``An SLRU cache is divided into two segments, a probationary segment
and a protected segment. Lines in each segment are ordered from the
most to the least recently accessed. Data from misses is added to the
cache at the most recently accessed end of the probationary segment.
Hits are removed from wherever they currently reside and added to the
most recently accessed end of the protected segment. Lines in the
protected segment have thus been accessed at least twice. The
protected segment is finite, so migration of a line from the
probationary segment to the protected segment may force the migration
of the LRU line in the protected segment to the most recently used
(MRU) end of the probationary segment, giving this line another chance
to be accessed before being replaced. The size limit on the protected
segment is an SLRU parameter that varies according to the I/O workload
patterns. Whenever data must be discarded from the cache, lines are
obtained from the LRU end of the probationary segment"
[12].
In our first experiment we set out to find if there exists any
locality of reference among the queries submitted, that is, if queries
are submitted more than once.
Figure 1 plots the number of accesses for the 1,000 most popular
queries.
Our results suggest that some queries are very popular:
the most popular query is submitted 2,219 times.
Moreover, there exists a large number of queries that are accessed
several times and are excellent candidates for caching:
even the 1,000th most popular query is submitted as many as
27 times. We measured that the 25 most
popular queries (1.23% of the total) were requested 11,435
times. 4
Although the most popular query is submitted 2,219 times,
the average query is submitted 1.33 times, and thus caching search engine
query results may reach a hit rate up to 25%.
It is important to mention that an independent study of the
AltaVista trace
suggests that each query was submitted 3.97 times on the average,
and thus caching
the AltaVista search engine results may reach a hit rate
be up to 75% [31]. 5 Although quantitatively different,
the AltaVista statistics are very encouraging since
they suggest that caching may result in significantly higher hit rates than
the ones we observe using the Excite trace.
Figure:
Number of accesses for the 1,000 most popular queries.
The graph displays the number of requests for the 1,000 most popular queries
of the trace studied sorted in decreasing number of accesses.
We see that the most popular query is submitted
2,219 times, while the 1,000th most popular query is submitted
27 times.
|
Although Figure 1 suggests that several
queries are being submitted repeatedly, it does not quantify
the temporal locality of the queries submitted. That is,
is the same query repeatedly submitted within a small time interval?
To quantify the temporal locality of the queries submitted
we measured the time between successive submissions of the same query.
The time was measured in queries intervened
between the two successive submissions.
The results were rounded to the nearest hundred
and plotted in Figure 2. We see that
in 1,639 instances the time between successive submissions of the same query
was less than 100. In other words, a cache size that can hold the
results of only the most recent 100 queries is enough to result in 1,639 hits.
We also see that in 14,075 instances the time between successive
submissions of the same query was less than 1,000,
and in 68,618 instances the time between successive
submissions of the same query was less than 10,000 (other queries).
Figure:
Distances between submissions of the same query.
The graph displays the cummulative distribution of times between submissions of
the same query by some user. We see that there is a large number of
queries (1,639) whose time between two successive submissions
is less than 100 (other) queries.
|
In our first caching experiment we evaluate the performance of caching query
results, by comparing the effectiveness of several
cache replacement algorithms: SLRU, LRU, FBR, and LRU/2.
Figure 3 plots the hit rate as a function
of cache size.
We see that the performance (hit rate) of all algorithms
increases with cache size. For caches larger than 1 Gbyte (not shown here)
all algorithms perform
very close to the best 6.
For very small caches (<100 Mbytes) FBR and SLRU have the best performance
followed by LRU/2 and LRU.
For mid-size caches, LRU/2, SLRU and FBR have similar performance
followed by LRU.
For large caches (> 1 Gbyte) all algorithms
have similar performance.
Figure:
Hit Rate as a function of the Cache Size
|
Figure 4 presents the
hit rates achieved by FBR, SLRU, and LRU/2 alone in logscale
in order to focus on their differences.
We see that for very small cache sizes (<100 Mbytes) FBR performs better
than LRU/2. For large caches LRU/2 performs a little better than FBR.
However, in all cases, SLRU performs very close to the best of
FBR and LRU/2.
Figure 4 suggests that a small 100 Mbyte cache
is able to achieve close to 15% hit rate, or 60% of the maximum
hit rate achievable. Such a small cache may easily fit in the main
memory of a web server accelerator. However, to get the rest 40% we may need
to use caches that are 1-2 Gbytes large, which should probably be kept
in secondary memory. However, it may still be faster to keep
a query's results in secondary memory instead of re-evaluating the
query, especially for queries that are composed of
several keywords, and/or
queries that need several accesses to secondary memory 7.
Figure:
Hit Rate of FBR, SLRU,
and LRU/2 as a function of the Cache Size
|
Figure 3 suggests that although the hit rate increases
with cache size, it reaches a maximum at 25%.
This relatively low hit rate is, we believe, due to the short
duration of the traces we had available. A study of a very large
Alta-Vista trace suggests that the maximum hit rate is close to
75% [31]. We believe that the maximum achievable
hit rate increases with the size of the trace.
To verify our assumption, we repeated our simulations and
measured the hit rate achieved for each individual interval of
50,000 queries.
Figure 5 plots this hit rate as a function of time
for cache size equal to 1.6 Gbytes (60% of the maximum cache size).
We see that at the beginning the hit rate is low, but increases
with time. Halfway through the simulation (at 450,000 submissions)
it has reached a 25%. From that point on it continues to increase
(albeit slowly) and stabilizes in the area of 29%.
This experiment suggests that once the caches are warmed up,
their effectiveness increases with the size of the
trace and may reach close to 30%, or to put it simply,
(roughly) one out of three queries submitted will be served from the cache.
Figure:
Hit Rate as a function of Time.
We see that all policies start with a low hit rate.
When they warm up the caches, hit rates may reach up to 30%.
|
Although the queries submitted to search engines
cover a wide variety of interests,
the most popular of the queries
do not change frequently. Thus, it is theoretically possible to calculate
what the popular queries are, and put their
results in the cache. To keep the cache up-to-date, the popular
queries may be recalculated periodically.
We call this static
approach of populating the cache static caching, to contrast
with the rest of the policies that we have described which
dynamically populate the cache with query results.
Static caching may perform better than dynamic caching,
since it populates the cache only with popular queries.
On the other hand, its dynamic counterpart, caches
recent queries, replacing in the process, some queries
that may be less popular than the
newly cached queries.
However, static caching may also perform worse
than dynamic caching, since, by its nature, it uses
out-of-date information. That is, today's popular queries
were not necessarily popular yesterday (e.g. breaking news
about an earthquake will spring a significant number of new
queries on the subject), and thus, they will not be cached
by static caching
until the popular queries are re-evaluated.
To evaluate the performance of static caching, we partitioned
our 927,010 queries into two equal-sized sets.
We used the first set to find the popular queries, and put them
in cache. We drive the simulator with the second
set of queries and measure the hit rate. During the trace-driven
simulation the contents of the (statically-populated) cache
do not change.
Figure 6 plots the results of
static caching compared to traditional dynamic caching
algorithms like LRU and SLRU.
We see that for small cache sizes (less than 50 Mbytes)
static caching outperforms, although not by a significant
amount, all dynamic caching approaches.
Static caching can successfully populate
small caches with most useful documents. Under dynamic
caching, popular documents do not get the chance to stay in
(the small) cache long enough to be reused at a later time.
Figure 6 shows that for large cache sizes
dynamic caching outperforms static caching, as expected,
while for small cache sizes static caching is comparable
(if not preferable) to dynamic caching.
Figure:
Hit Rate comparison between static
and dynamic caching.
Static caching is better than dynamic
for small cache sizes: around 50 Mbytes.
|
Conclusions
In this paper we explore the
performance advantages of caching dynamic data
(and in particular Search Engine Query Results)
on a web accelerator used in front of a web search engine.
We use query traces from the EXCITE search engine to find the locality that
may exist in the queries submitted and evaluate the performance
of various cache replacement algorithms.
Based on our trace-driven simulations we conclude:
- There exists a significant amount of locality in the queries submitted
to popular web search engines.
Our experiments suggest that one out of three of the queries submitted
has been previously submitted by the same or by another user.
This amount of locality is already high
and will probably increase in longer traces [31].
- Medium-sized main memory accelerator caches absorb
a significant percentage of the submitted queries.
Our experiments suggest that medium-sized caches can result in
hit rates ranging around 20% (or even higher for warm caches).
Effectively, the web server accelerator absorbs 20%
of the incoming queries, reducing the load of the web servers
by the same amount.
- Effective Cache Replacement Policies should take into
account both recency and frequency of access in
their replacement decisions.
Our experimental results suggest that FBR, LRU/2,
and SLRU always perform better
than simple LRU which does not take frequency of access into account.
-
Static caching is effective for small cache sizes.
Static caching executes faster and has higher hit rate
than dynamic
caching algorithms for small cache sizes.
Thus, it is a promising caching approach for very small
caches, and should probably be used in conjunction with
dynamic caching for larger caches.
Summarizing, we showed that
although people have a wide variety of interests
(from ``aa alcoholics'' to ``zz top''),
caching their interests is an effective and promising
method to improve the performance of popular search engines.
This work was
supported in part by PENED project
2041 2270/1-2-95,
We deeply appreciate this financial support.
Some of the experiments were run at the
Center for High-Performance Computing of the
University of Crete (http://www.csd.uch.gr/hpcc/).
Pei Cao provided the initial version of the simulator used in this paper.
Amanda Spink and Jim Larsen pointed out the EXCITE traces and helped
us with several questions.
Dionisions Pnevmatikatos provided several useful comments.
We thank all of them.
Evangelos Markatos is an assistant professor of
Computer Science at the University of Crete,
and Head of the Operating Systems and HPCN
of the Institute of
Computer Science, FORTH, Heraklion, Crete, Greece.
He received his diploma in Computer Engineering from
the University of Patras, Greece in 1988, and
the M.S., and Ph.D degrees in Computer Science
from the University of Rochester, NY in 1990, and 1993 respectively.
His research
interests include operating systems, computer architecture,
networking, parallel/distributed systems, resource discovery, and the Web.
He can be reached at markatos@ics.forth.gr.
- 1
-
M. Abrams, C.R.Standridge, G. Abdulla, S. Williams, and E.A. Fox.
Caching Proxies: Limitations and Potentials.
In Proceedings of the Fourth International WWW Conference,
1995.
- 2
-
S. Adali, K.S. Candan, Y. Papakonstantinou, and V.S. Subrahmanian.
Query Caching and Optimization in Distributed Mediator Systems.
In H. V. Jagadish and Inderpal Singh Mumick, editors, Proc. of
the 1996 ACM SIGMOD Conf. on Management of Data, pages 137-148. ACM Press,
1996.
- 3
-
Azer Bestavros.
Speculative Data Dissemination and Service to Reduce Server Load,
Network Traffic and Service Time for Distributed Information Systems.
In Proceedings of ICDE'96: The 1996 International Conference on
Data Engineering, March 1996.
- 4
-
Pei Cao and Sandy Irani.
Cost-Aware WWW Proxy Caching Algorithms.
In Proc. of the first USENIX Symposium on Internet Technologies
and Systems, pages 193-206, 1997.
- 5
-
J. Challenger, A. Iyengar, and P. Dantzig.
A Scalable System for Consistently Caching Dynamic Data.
In INFOCOM 99, 1999.
- 6
-
Anawat Chankhunthod, Peter B. Danzig, Chuck Neerdaels, Michael F. Schwartz, and
Kurt J. Worrell.
A Hierarchical Internet Object Cache.
In Proc. of the 1996 Usenix Technical Conference, 1996.
- 7
-
D. Dias, W. Kish, R. Muhkerjee, and R. Tewari.
A scalable and highly available web server.
In COMPCON 96, 1996.
- 8
-
D. Duchamp.
Prefetching Hyperlinks.
In Proc. of the second USENIX Symposium on Internet Technologies
and Systems, October 1999.
- 9
-
J. Gwertzman and M. Seltzer.
The Case for Geographical Push Caching.
In Proceedings of the 1995 Workshop on Hot Operating Systems,
1995.
- 10
-
A. Iyengar and J. Challenger.
Improving Web Server Performance by Caching Dynamic Data.
In Proc. of the first USENIX Symposium on Internet Technologies
and Systems, 1997.
- 11
-
B.J. Jansen, A. Spink, J. Bateman, and T. Saracevic.
Searchers, the subjects they search, and sufficiency: A study of a
large sample of EXCITE searches.
In Proceedings of Webnet 98, 1998.
- 12
-
R. Karedla, J. Love, and B. Wherry.
Caching Strategies to Improve Disk System Performance.
Computer, 1994.
- 13
-
T.M. Kroeger, D.D.E. Long, and J.C. Mogul.
Exploring the Bounds of Web Latency Reduction from Caching and
Prefetching.
In Proc. of the first USENIX Symposium on Internet Technologies
and Systems, pages 13-22, 1997.
- 14
-
E. Levy-Abegnoli, A. Iyengar, and J. Song.
Dias: Design and performance of a Web server accelerator.
In INFOCOM 99, 1999.
- 15
-
P. Lorenzetti, L. Rizzo, and L. Vicisano.
Replacement Policies for a Proxy Cache, 1998.
http://www.iet.unipi.it/~ luigi/research.html.
- 16
-
Q. Luo, R. Krishnamurthy, Y. Li, P. Cao, and J. F. Naughton.
Active Query Caching for Database Web Servers, 1999.
- 17
-
Radhika Malpani, Jacob Lorch, and David Berge.
Making World Wide Web Caching Servers cooperate.
In Proceedings of the Fourth International WWW Conference,
1995.
- 18
-
E.P. Markatos.
Main Memory Caching of Web Documents.
Computer Networks and ISDN Systems, 28(7-11):893-906, 1996.
- 19
-
E.P. Markatos and C. Chronaki.
A Top-10 Approach to Prefetching on the Web.
In Proceedings of the INET 98 Conference, 1998.
- 20
-
Evangelos P. Markatos, Christina Tziviskou, and Athanasios Papathanasiou.
Effective Resource Discovery on the World Wide Web.
In Proceedings of Webnet 98, pages 611-616, 1998.
- 21
-
W. Meira Jr, M. Cesario, R. Fonseca, and N. Ziv.
Integrating WWW Caches and Search Engines.
In Proceedings of the IEEE 1999 Global Telecommunications
Internet Mini-Conference, 1999.
- 22
-
J.C. Mogul, F. Douglis, A. Feldmann, and B. Krishnamurthy.
Potential benefits of delta-encoding and data compression for HTTP.
In Proc. of the ACM SIGCOMM 97, 1997.
- 1
-
E.J. O'Neil, P.E. O'Neil, and G. Weikum.
The LRU-K Page Replacement Algorithm For Database Disk Buffering.
In Proc. of the 1993 ACM SIGMOD Conf. on Management of Data,
pages 297-306, 1993.
- 24
-
J. Zhang P. Cao and K. Beach.
Active Cache: Caching Dynamic Contents on the Web.
In Proceedings of IFIP International Conference on Distributed
Systems Platforms and Open Distributed Processing (Middleware '98), pages
373-388, 1998.
- 25
-
V.N. Padmanabhan and J. Mogul.
Using Predictive Prefetching to Improve World Wide Web Latency.
SIGCOMM Computer Communication Review, 26:22-36, 1996.
- 26
-
V. Pai, M. Aron, G. Banga, M. Svendsen, P. Druschel, W. Zwaenepoel, and
E. Nahum.
Locality-Aware Request Distribution in Cluster-based Network Servers.
In Proc. of the 8-th International Conference on Architectural
Support for Programming Languages and Operating Systems, 1998.
- 27
-
J.E. Pitkow and M. Recker.
A Simple, Yet Robust Caching Algorithm Based on Dynamic Access
Patterns.
In Proceedings of the Second International WWW Conference,
1994.
- 28
-
John T. Robinson and Murthy V. Devarakonda.
Data Cache Management Using Frequency-Based Replacement.
In Proc. of the 1990 ACM SIGMETRICS Conference, pages 134-142,
1990.
- 29
-
A. Rousskov, V. Soloviev, and I. Tatarinov.
Static Caching for Proxy Servers.
In Proceedings of the NLANR Web Cache Workshop, 1997.
- 30
-
P. Scheuearmann, J. Shim, and R. Vingralek.
A Case for Delay-Conscious Caching of Web Documents.
In 6th International World Wide Web Conference, 1997.
- 31
-
C. Silverstein, M. Henzinger, H. Marais, and M. Moricz.
Analysis of a Very Large AltaVista Query Log.
Technical Report SRC Technical Note 1998-014, 1998.
- 32
-
A. Spink, B.J. Jansen, and J. Bateman.
Users' searching behavior on the EXCITE web search engine.
In Proceedings of Webnet 98, 1998.
- 33
-
M. Taylor, K. Stoffel, J. Saltz, and J. Hendler.
Using Distributed Query Result Caching to Evaluate Queries for
Parallel Data Mining Algorithms.
In Proc. of the Int. Conf. on Parallel and Distributed
Techniques and Applications, 1998.
- 34
-
Joe Touch.
Defining High Speed Protocols : Five Challenges and an Example That
Survives the Challenges.
IEEE JSAC, 13(5):828-835, June 1995.
- 35
-
S. Williams, M. Abrams, C.R. Standbridge, G. Abdulla, and E.A. Fox.
Removal Policies in Network Caches for World-Wide Web Documents.
In Proc. of the ACM SIGCOMM 96, 1996.
- 36
-
A. Wolman, G. Voelker, N Sharma, N. Cardwell, M. Brown, T. Landray, D. Pinnel,
A. Karlin, and H. Levy.
Organization-Based Analysis of Web-Object Sharing and Caching.
In Proc. of the second USENIX Symposium on Internet Technologies
and Systems, 1999.
- 37
-
Roland P. Wooster and Marc Abrams.
Proxy Caching that Estimates Page Load Delays.
In 6th International World Wide Web Conference, 1997.
On Caching Search Engine Query Results
This document was generated using the
LaTeX2HTML translator Version 98.1p1 release (March 2nd, 1998)
Copyright © 1993, 1994, 1995, 1996, 1997,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
The command line arguments were:
latex2html -debug -split 0 paper.tex.
The translation was initiated by Evangelos Markatos on 2000-05-15
Footnotes
- ... documents 1
- EXCITE gives users the ability to find
documents that are ``similar'' to a URL returned.
- ... simulator. 2
-
The simulator used was the one developed by Pei Cao at the
University of Wisconsin [4]. We used most of its existing functionality
and added a few more cache replacement policies.
- ...
3
- The above description of LRU/2
is oversimplified. If LRU/2 worked as stated it would soon degenerate
to MRU, and would replace the block that has just brought in
because eventually all blocks in the cache would have a positive
penultimate access time, while newly accessed blocks would have a
penultimate access time, leading to their replacement.
To avoid such degenerate behavior, O'Neil et al. suggest that
blocks once brought into the memory buffer should stay
there for a number of seconds. In our implementation of LRU/2, we keep
all blocks in the cache according to their LRU access time and
replace according to LRU/2 only from the last two thirds of the buffer.
Thus, new blocks are given the chance to grow old and have
a positive penultimate access time.
- ...
times. 4
- Our results agree with those from the AltaVista
study [31] that
suggest that the 25 most popular queries of the AltaVista trace
amounted for the 1.5% of the total number of queries requested.
- ...[31]. 5
- This difference is probably
because the AltaVista trace is about 1,000 times larger than
our trace.
- ... best 6
-
The cache size that would be required to hold the results
of all queries submitted is 2.5 Gbytes.
- ... memory 7
-
In such cases it is not uncommon for a program to consume over a second of
CPU time in order to generate a single dynamic page
containing the query's results [5].
Evangelos Markatos
2000-05-15