78
User Space Memory
Host
Ethernet NIC
5
Header
Data
4
NIC Memory
Request
6
CPU
Header
8
7
DMA
NIC
3
Controller
Processor
Data
2
1
Request
Kernel Space Memory
Fig. 5.1. HTTP Processing Steps in a Distributed Web Server for Local Cache Requests
to the user space memory by the OS kernel (Step 3). The Web server reads the request
and checks whether the requested file resides in the data cache of the main memory (Step
4). In case of a cache hit, it generates the HTTP header (Step 5) and writes the header
and data into the kernel space memory (Step 6). The OS kernel transfers the header
and data into the NIC memory through DMA (Step 7). Finally, the Ethernet NIC sends
the response to the client through TCP/IP (Step 8). A local cache miss will invoke the
remote cache read, described next.
5.3.2
remote cache read
A remote cache read occurs when the node that receives a client's request from
the webswitch, called an initial node, does not have the requested file in its data cache.
In other words, the initial node has a local cache miss and thus, needs to get it from
another node, called a service node, which has the data in its local cache. The initial
node initiates a remote cache read by sending a request to a service node using backend
forwarding [13] via the intelligent NIC. Figure 5.2 depicts the processing steps at a service