Fbufs: a high-bandwidth cross-domain transfer facility
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Software support for outboard buffering and checksumming
SIGCOMM '95 Proceedings of the conference on Applications, technologies, architectures, and protocols for computer communication
A modified approach to data cache management
Proceedings of the 28th annual international symposium on Microarchitecture
Internet Web servers: workload characterization and performance implications
IEEE/ACM Transactions on Networking (TON)
IO-lite: a unified I/O buffering and caching system
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
Performance issues in WWW servers
IEEE/ACM Transactions on Networking (TON)
Queue pair IP: a hybrid architecture for system area networks
ISCA '02 Proceedings of the 29th annual international symposium on Computer architecture
Payload Caching: High-Speed Data Forwarding for Network Intermediaries
Proceedings of the General Track: 2002 USENIX Annual Technical Conference
A Network Co-processor-Based Approach to Scalable Media Streaming in Servers
ICPP '00 Proceedings of the Proceedings of the 2000 International Conference on Parallel Processing
Cost-aware WWW proxy caching algorithms
USITS'97 Proceedings of the USENIX Symposium on Internet Technologies and Systems on USENIX Symposium on Internet Technologies and Systems
Flash: an efficient and portable web server
ATEC '99 Proceedings of the annual conference on USENIX Annual Technical Conference
A scalable and explicit event delivery mechanism for UNIX
ATEC '99 Proceedings of the annual conference on USENIX Annual Technical Conference
Exploiting task-level concurrency in a programmable network interface
Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
Spinach: a liberty-based simulator for programmable network interface architectures
Proceedings of the 2004 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Network Interface Data Caching
IEEE Transactions on Computers
Performance analysis of TLS Web servers
ACM Transactions on Computer Systems (TOCS)
A portable kernel abstraction for low-overhead ephemeral mapping management
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
RiceNIC: a reconfigurable network interface for experimental research and education
Proceedings of the 2007 workshop on Experimental computer science
Protection strategies for direct access to virtualized I/O devices
ATC'08 USENIX 2008 Annual Technical Conference on Annual Technical Conference
CacheCard: caching static and dynamic content on the NIC
Proceedings of the 5th ACM/IEEE Symposium on Architectures for Networking and Communications Systems
Hi-index | 0.01 |
This paper introduces network interface data caching, a new technique to reduce local interconnect traffic on networking servers by caching frequently-requested content on a programmable network interface. The operating system on the host CPU determines which data to store in the cache and for which packets it should use data from the cache. To facilitate data reuse across multiple packets and connections, the cache only stores application-level response content (such as HTTP data), with application-level and networking headers generated by the host CPU. Network interface data caching can reduce PCI traffic by up to 57% on a prototype implementation of a uniprocessor web server. This traffic reduction results in up to 31% performance improvement, leading to a peak server throughput of 1571 Mb/s.