Exploiting the idea of NIC caching in a clustered Web server raises several inter
esting design issues. These include: (i) Where is the bottleneck of the Web server and
how can the proposed new caching schemes alleviate them?
(ii) What data should we
place in a NIC memory to enhance performance?; (iii) What kinds of cache replacement
policies are appropriate for the new caching schemes?; (iv) With continuing advances in
intra cluster communication, will the proposed caching schemes perform well under new
technologies?; and (v) Will NIC caching schemes be scalable?.
As a proof of concept to validate the idea of using the NIC memory for caching,
we have built a prototype and reported our implementation insights in . Although
this implementation effort has successively demonstrated that performance gains from
NIC caching are feasible, an in depth analysis of why and how the NIC caching works is
worth further investigation. In addition, the prototype has many constraints in exploiting
design issues due to hardware and system restrictions.
Through our implementation and careful examination of the architecture of Web
Server Clusters based on SANs, we have proposed two NIC caching schemes, namely,
exclusive caching and inclusive caching, to reduce disk accesses and communication cost
(in terms of data transfer latency), respectively. The exclusive caching scheme uses NIC
memory to cache content disjoint from the main memory cache. This caching scheme,
by extending the total amount of cache (including main and NIC memories), yields very
good performance due to increased cache hits. On the other hand, the inclusive caching
scheme aims at reducing communication cost (in terms of I/O traffic and data transfer
latency) between NIC memory and the main memory of the Web server by caching the
most popular files in NIC memory.