Non-volatile write cache (NVWC) can help to improve the performance of I/O-intensive tasks, especially writedominated tasks. The benefit of NVWC, however, cannot be fully exploited if an admission policy blindly caches all writes without differentiating the criticality of each write in terms of application performance. We propose a request-oriented admission policy, which caches only writes awaited in the context of request execution. To accurately detect such writes, a critical process, which is involved in handling requests, is identified by applicationlevel hints. Then, we devise criticality inheritance protocols in order to handle process and I/O dependencies to a critical process. The proposed scheme is implemented on the Linux kernel and is evaluated with PostgreSQL relational database and Redis NoSQL store. The evaluation results show that our scheme outperforms the policy that blindly caches all writes by up to 2.2× while reducing write traffic to NVWC by up to 87%.
|Title of host publication||Proceedings of the 2015 USENIX Annual Technical Conference, USENIX ATC 2015|
|Number of pages||14|
|Publication status||Published - 2015|
|Event||2015 USENIX Annual Technical Conference, USENIX ATC 2015 - Santa Clara, United States|
Duration: 2015 Jul 8 → 2015 Jul 10
|Name||Proceedings of the 2015 USENIX Annual Technical Conference, USENIX ATC 2015|
|Conference||2015 USENIX Annual Technical Conference, USENIX ATC 2015|
|Period||15/7/8 → 15/7/10|
Bibliographical noteFunding Information:
We would like to thank the anonymous reviewers and our shepherd, Phillipa Gill, for their valuable comments. This work was supported by the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIP) (No. NRF-2014R1A2A1A10049626).
© 2015 USENIX Annual Technical Conference.
All Science Journal Classification (ASJC) codes
- Computer Science(all)