Affiliation:
1. University of Waterloo, Waterloo, ON, Canada
Abstract
An important class of computer software, such as network servers, exhibits concurrency through many loosely coupled and potentially long-running communication sessions. For these applications, a long-standing open question is whether thread-per-session programming can deliver comparable performance to event-driven programming. This paper clearly demonstrates, for the first time, that it is possible to employ user-level threading for building thread-per-session applications without compromising functionality, efficiency, performance, or scalability. We present the design and implementation of a general-purpose, yet nimble, user-level M:N threading runtime that is built from scratch to accomplish these objectives. Its key components are efficient and effective load balancing and user-level I/O blocking. While no other runtime exists with comparable characteristics, an important fundamental finding of this work is that building this runtime does not require particularly intricate data structures or algorithms. The runtime is thus a straightforward existence proof for user-level threading without performance compromises and can serve as a reference platform for future research. It is evaluated in comparison to event-driven software, system-level threading, and several other user-level threading runtimes. An experimental evaluation is conducted using benchmark programs, as well as the popular Memcached application. We demonstrate that our user-level runtime outperforms other threading runtimes and enables thread-per-session programming at high levels of concurrency and hardware parallelism without sacrificing performance.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Networks and Communications,Hardware and Architecture,Safety, Risk, Reliability and Quality,Computer Science (miscellaneous)
Reference66 articles.
1. Lock and semaphore icons designed by Freepik (https://www.flaticon.com/authors/freepik) from Flaticon (www. flaticon.com). Licensed via Flaticon Basic License. Lock and semaphore icons designed by Freepik (https://www.flaticon.com/authors/freepik) from Flaticon (www. flaticon.com). Licensed via Flaticon Basic License.
2. libevent. http://libevent.org/. [Online; accessed 2019--12--27]. libevent. http://libevent.org/. [Online; accessed 2019--12--27].
3. libev. http://libev.schmorp.de/. [Online; accessed 2019--12--27]. libev. http://libev.schmorp.de/. [Online; accessed 2019--12--27].
4. libuv. http://libuv.org/. [Online; accessed 2019--12--27]. libuv. http://libuv.org/. [Online; accessed 2019--12--27].
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献