Evaluating Proxy Cache Algorithms and
Sponsor Ling Liu / Wei Tang
223 CCB /225b CCB
Area Systems and Databases
Proxy caches are widely used today to reduce response time and network
traffic on the Web. There are two classes of proxy architectural designs:
single-proxy and multiple-proxy. In a single-proxy architecture, every
document fetching request is sent to the only proxy server. If the page
misses in the cache, the proxy will direct the request to appropriate
remote information server. In multiple-proxy architecture, several
proxies will cooperate efficiently in order to increase document hit
rate. Hierarchical-proxy architecture and distributed-proxy architecture
are the two popular multi-proxy architectures.
WebCQ is an automated change detection and notification service for Web
pages, developed at Georgia Tech. It can monitor and track various types
of changes to static and dynamic web pages, provide personalized delivery
of information change notifications, and personalized summarization and
prioritization of web pages being monitored. In WebCQ, a primitive proxy
cache service is implemented.
Your objective in this project is to evaluate different proxy cache
implementations for the multiple-proxy architecture. You need to download
running systems and install them to do the experiments. You may also get
some open-source systems and study their detailed implementation. You
will need to compare the performance differences among various proxy
cache implementations. Eventually, you will be asked to choose one cache
architecture and incorporate your implementation with WebCQ proxy cache
service. Some basic features have to be implemented, including:
- multiple-proxy architecture
- dynamic content caching (e.g., caching CGI/Servlet/JSP generated
- cache replacement algorithm (you can choose LRU or other algorithms,
but you need to validate your choice)
- simple consistency control and coherence policy
You are expected to have a solid grasp of Java/C/C++/CGI/Servlet
programming skills. For the final proxy cache implementation, we
recommend you use Java to realize your algorithms. However, you may
choose other languages. Some initial experiments showing the
performance speedup using the proxy will be performed and evaluated.
Here are some links to help you get started (be sure to read the
licensing documents before you download the software packages):
(1) A report, describing your evaluation setup, model, and experimental results, the insights in your project, and future improvements/extensions.
(2) The source code for your proxy cache implementation.
You will be graded on the novelty and quality of your software and your report.