Improving asynchronous invocation performance in client-server systems
Document Type
Conference Proceeding
Publication Date
7-19-2018
Abstract
In this paper, we conduct an experimental study of asynchronous invocation on the performance of client-server systems. Through extensive measurements of both realistic macro-and micro-benchmarks, we show that servers with the asynchronous event-driven architecture may perform significantly worse than the thread-based version resulting from two nontrivial reasons. First, the traditional wisdom of one-event-one-handler event processing flow can create large amounts of intermediate context switches that significantly degrade the performance of an asynchronous server. Second, some runtime workload (e.g., response size) and network conditions (e.g., network latency) may cause significant negative performance impact on the asynchronous event-driven servers, but not on threadbased ones. We provide a hybrid solution by taking advantage of different asynchronous architectures to adapt to varying workload and network conditions. Our hybrid solution searches for the most efficient execution path for each client request based on the runtime request profiling and type checking. Our experimental results show that the hybrid solution outperforms all the other types of servers up to 19%~90% on throughput, depending on specific workload and network conditions.
Publication Source (Journal or Book title)
Proceedings - International Conference on Distributed Computing Systems
First Page
907
Last Page
917
Recommended Citation
Zhang, S., Wang, Q., & Kanemas, Y. (2018). Improving asynchronous invocation performance in client-server systems. Proceedings - International Conference on Distributed Computing Systems, 2018-July, 907-917. https://doi.org/10.1109/ICDCS.2018.00092