Check out the new USENIX Web site. next up previous
Next: Experimental Methodology Up: AFPA Previous: Windows 2000 TCP/IP Integration

Cache Architecture

A complete description of the AFPA cache is beyond the scope of this paper. We do, however describe several aspects particularly relevant to response processing. First, AFPA cache objects contain mutable header data, immutable header data, and data payload. On Windows 2000, the cache object is represented as an MDL. Cache objects do not include precomputed checksums because Windows 2000 supports a number of network adapters that offload checksum computation as well as payload fragmentation. On Linux, the cache object is presented as a list of skbuff structures with precomputed checksums. This architecture allows zero copy send operations, not supported by the Linux 2.2 kernel. Second, AFPA cache objects are opaque data types which can be backed by any number of memory systems. For example, it is possible to implement AFPA cache objects using Windows 2000 support for x86 PAE (Physical Address Extensions) mode and manage a cache of up to 64 GB in size. It is also possible to back AFPA cache objects directly with the file system cache, thereby leveraging the system cache for selected cached files. Third, the cache architecture supports a hybrid approach to handling responses at software interrupt or kernel thread. This allows a two level cache where frequently accessed small files remained pinned, allowing them to be delivered in a software interrupt context, while larger and less frequently accessed files are served using threads. Finally, cache objects are divided into fragments. Each fragment can be pinned and passed to the TCP/IP stack independently.


next up previous
Next: Experimental Methodology Up: AFPA Previous: Windows 2000 TCP/IP Integration
Philippe Joubert 2001-05-01