DNS: disk-to-network splicing for network driven data transferring

In Internet servers that run on general-purpose operating systems, network subsystems and disk subsystems cooperate with each other for user requests. Many studies have focused on optimizing the data movement across the subsystems to reduce data copying overhead among intermediate buffers such as process buffers, network send buffers and disk buffers. When data are moved across the subsystems, events such as read requests and write requests for data movement are also delivered across the subsystems by the servers and operating systems. However, there have been fewer studies on the optimization of event delivery which controls data copying timing across the subsystems. In conventional operating systems, to transfer data in the disk subsystem into the network subsystem, several different contexts are involved. A series of events are passed through the contexts. Whenever an event in one context is passed into the other context, context switching and scheduling are incurred. We have developed inter-subsystem event delivery mechanism, disk-to-network splicing (DNS), which optimizes event delivery among the subsystems involved to suppress scheduling and context switching during I/O request processing. We developed a DNS mechanism and performed experiments on Linux 2.4. The experimental results show that the system performance is improved by 4.9% 10.1%.