Abstract | ||
---|---|---|
In data-intensive applications, such as databases and key-value stores, reducing the request handling latency is important for providing better data services. In such applications, I/O-intensive background tasks, such as checkpointing, are the major culprit in worsening the latency due to the contention in shared I/O stack and storage. To minimize the contention, properly prioritizing I/Os is crucial but the effectiveness of existing approaches is limited for two reasons. First, statically deciding the priority of an I/O is insufficient since high-priority tasks can wait for low-priority I/Os due to I/O priority inversion. Second, multiple independent layers in modern storage stacks are not holistically considered by existing approacheswhich thereby fail to effectively prioritize I/Os throughout the I/O path. In this paper, we propose a request-centric I/O prioritization that dynamically detects and prioritizes I/Os delaying request handling at all layers in the I/O path. The proposed scheme is implemented on Linux and is evaluated with three applications, PostgreSQL, MongoDB, and Redis. The evaluation results show that our scheme achieves up to 53% better request throughput and 42× better 99th percentile request latency (84 ms vs. 3581 ms), compared to the default configuration in Linux. |
Year | Venue | Field |
---|---|---|
2017 | FAST | Computer science,Latency (engineering),Parallel computing,Prioritization,Real-time computing,Input/output,Priority inversion,Throughput,Data as a service,Operating system |
DocType | Citations | PageRank |
Conference | 2 | 0.37 |
References | Authors | |
12 | 4 |
Name | Order | Citations | PageRank |
---|---|---|---|
Sang-Wook Kim | 1 | 792 | 152.77 |
Hwanju Kim | 2 | 298 | 18.75 |
Joonwon Lee | 3 | 1438 | 90.35 |
Jinkyu Jeong | 4 | 300 | 21.96 |