Exploiting intra-request slack to improve SSD performance

Nima Elyasi, Mohammad Arjomand, Anand Sivasubramaniam, Mahmut T. Kandemir, Chita R. Das, Myoungsoo Jung

Research output: Chapter in Book/Report/Conference proceedingConference contribution

15 Citations (Scopus)

Abstract

With Solid State Disks (SSDs) offering high degrees of parallelism, SSD controllers place data and direct requests to exploit the maximum offered hardware parallelism. In the quest to maximize parallelism and utilization, sub-requests of a request that are directed to different flash chips by the scheduler can experience differential wait times since their individual queues are not coordinated and load balanced at all times. Since the macro request is considered complete only when its last sub-request completes, some of its subrequests that complete earlier have to necessarily wait for this last sub-request. This paper opens the door to a new class of schedulers to leverage such slack between sub-requests in order to improve response times. Specifically, the paper presents the design and implementation of a slack-enabled re-ordering scheduler, called Slacker, for sub-requests issued to each flash chip. Layered under a modern SSD request scheduler, Slacker estimates the slack of each incoming sub-request to a flash chip and allows them to jump ahead of existing sub-requests with sufficient slack so as to not detrimentally impact their response times. Slacker is simple to implement and imposes only marginal additions to the hardware. Using a spectrum of 21 workloads with diverse read-write characteristics, we show that Slacker provides as much as 19.5%, 13% and 14.5% improvement in response times, with average improvements of 12%, 6.5% and 8.5%, for write-intensive, read-intensive and read-write balanced workloads, respectively.

Original languageEnglish
Title of host publicationASPLOS 2017 - 22nd International Conference on Architectural Support for Programming Languages and Operating Systems
PublisherAssociation for Computing Machinery
Pages375-388
Number of pages14
ISBN (Electronic)9781450344654
DOIs
Publication statusPublished - 2017 Apr 4
Event22nd International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2017 - Xi'an, China
Duration: 2017 Apr 82017 Apr 12

Publication series

NameInternational Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS
VolumePart F127193

Other

Other22nd International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2017
CountryChina
CityXi'an
Period17/4/817/4/12

Fingerprint

Hardware
Macros
Controllers

All Science Journal Classification (ASJC) codes

  • Software
  • Information Systems
  • Hardware and Architecture

Cite this

Elyasi, N., Arjomand, M., Sivasubramaniam, A., Kandemir, M. T., Das, C. R., & Jung, M. (2017). Exploiting intra-request slack to improve SSD performance. In ASPLOS 2017 - 22nd International Conference on Architectural Support for Programming Languages and Operating Systems (pp. 375-388). (International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS; Vol. Part F127193). Association for Computing Machinery. https://doi.org/10.1145/3037697.3037728
Elyasi, Nima ; Arjomand, Mohammad ; Sivasubramaniam, Anand ; Kandemir, Mahmut T. ; Das, Chita R. ; Jung, Myoungsoo. / Exploiting intra-request slack to improve SSD performance. ASPLOS 2017 - 22nd International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, 2017. pp. 375-388 (International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS).
@inproceedings{8d8226d5e0ab43d187950fd6dd293cc7,
title = "Exploiting intra-request slack to improve SSD performance",
abstract = "With Solid State Disks (SSDs) offering high degrees of parallelism, SSD controllers place data and direct requests to exploit the maximum offered hardware parallelism. In the quest to maximize parallelism and utilization, sub-requests of a request that are directed to different flash chips by the scheduler can experience differential wait times since their individual queues are not coordinated and load balanced at all times. Since the macro request is considered complete only when its last sub-request completes, some of its subrequests that complete earlier have to necessarily wait for this last sub-request. This paper opens the door to a new class of schedulers to leverage such slack between sub-requests in order to improve response times. Specifically, the paper presents the design and implementation of a slack-enabled re-ordering scheduler, called Slacker, for sub-requests issued to each flash chip. Layered under a modern SSD request scheduler, Slacker estimates the slack of each incoming sub-request to a flash chip and allows them to jump ahead of existing sub-requests with sufficient slack so as to not detrimentally impact their response times. Slacker is simple to implement and imposes only marginal additions to the hardware. Using a spectrum of 21 workloads with diverse read-write characteristics, we show that Slacker provides as much as 19.5{\%}, 13{\%} and 14.5{\%} improvement in response times, with average improvements of 12{\%}, 6.5{\%} and 8.5{\%}, for write-intensive, read-intensive and read-write balanced workloads, respectively.",
author = "Nima Elyasi and Mohammad Arjomand and Anand Sivasubramaniam and Kandemir, {Mahmut T.} and Das, {Chita R.} and Myoungsoo Jung",
year = "2017",
month = "4",
day = "4",
doi = "10.1145/3037697.3037728",
language = "English",
series = "International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS",
publisher = "Association for Computing Machinery",
pages = "375--388",
booktitle = "ASPLOS 2017 - 22nd International Conference on Architectural Support for Programming Languages and Operating Systems",

}

Elyasi, N, Arjomand, M, Sivasubramaniam, A, Kandemir, MT, Das, CR & Jung, M 2017, Exploiting intra-request slack to improve SSD performance. in ASPLOS 2017 - 22nd International Conference on Architectural Support for Programming Languages and Operating Systems. International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS, vol. Part F127193, Association for Computing Machinery, pp. 375-388, 22nd International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2017, Xi'an, China, 17/4/8. https://doi.org/10.1145/3037697.3037728

Exploiting intra-request slack to improve SSD performance. / Elyasi, Nima; Arjomand, Mohammad; Sivasubramaniam, Anand; Kandemir, Mahmut T.; Das, Chita R.; Jung, Myoungsoo.

ASPLOS 2017 - 22nd International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, 2017. p. 375-388 (International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS; Vol. Part F127193).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

TY - GEN

T1 - Exploiting intra-request slack to improve SSD performance

AU - Elyasi, Nima

AU - Arjomand, Mohammad

AU - Sivasubramaniam, Anand

AU - Kandemir, Mahmut T.

AU - Das, Chita R.

AU - Jung, Myoungsoo

PY - 2017/4/4

Y1 - 2017/4/4

N2 - With Solid State Disks (SSDs) offering high degrees of parallelism, SSD controllers place data and direct requests to exploit the maximum offered hardware parallelism. In the quest to maximize parallelism and utilization, sub-requests of a request that are directed to different flash chips by the scheduler can experience differential wait times since their individual queues are not coordinated and load balanced at all times. Since the macro request is considered complete only when its last sub-request completes, some of its subrequests that complete earlier have to necessarily wait for this last sub-request. This paper opens the door to a new class of schedulers to leverage such slack between sub-requests in order to improve response times. Specifically, the paper presents the design and implementation of a slack-enabled re-ordering scheduler, called Slacker, for sub-requests issued to each flash chip. Layered under a modern SSD request scheduler, Slacker estimates the slack of each incoming sub-request to a flash chip and allows them to jump ahead of existing sub-requests with sufficient slack so as to not detrimentally impact their response times. Slacker is simple to implement and imposes only marginal additions to the hardware. Using a spectrum of 21 workloads with diverse read-write characteristics, we show that Slacker provides as much as 19.5%, 13% and 14.5% improvement in response times, with average improvements of 12%, 6.5% and 8.5%, for write-intensive, read-intensive and read-write balanced workloads, respectively.

AB - With Solid State Disks (SSDs) offering high degrees of parallelism, SSD controllers place data and direct requests to exploit the maximum offered hardware parallelism. In the quest to maximize parallelism and utilization, sub-requests of a request that are directed to different flash chips by the scheduler can experience differential wait times since their individual queues are not coordinated and load balanced at all times. Since the macro request is considered complete only when its last sub-request completes, some of its subrequests that complete earlier have to necessarily wait for this last sub-request. This paper opens the door to a new class of schedulers to leverage such slack between sub-requests in order to improve response times. Specifically, the paper presents the design and implementation of a slack-enabled re-ordering scheduler, called Slacker, for sub-requests issued to each flash chip. Layered under a modern SSD request scheduler, Slacker estimates the slack of each incoming sub-request to a flash chip and allows them to jump ahead of existing sub-requests with sufficient slack so as to not detrimentally impact their response times. Slacker is simple to implement and imposes only marginal additions to the hardware. Using a spectrum of 21 workloads with diverse read-write characteristics, we show that Slacker provides as much as 19.5%, 13% and 14.5% improvement in response times, with average improvements of 12%, 6.5% and 8.5%, for write-intensive, read-intensive and read-write balanced workloads, respectively.

UR - http://www.scopus.com/inward/record.url?scp=85022053458&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=85022053458&partnerID=8YFLogxK

U2 - 10.1145/3037697.3037728

DO - 10.1145/3037697.3037728

M3 - Conference contribution

T3 - International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS

SP - 375

EP - 388

BT - ASPLOS 2017 - 22nd International Conference on Architectural Support for Programming Languages and Operating Systems

PB - Association for Computing Machinery

ER -

Elyasi N, Arjomand M, Sivasubramaniam A, Kandemir MT, Das CR, Jung M. Exploiting intra-request slack to improve SSD performance. In ASPLOS 2017 - 22nd International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery. 2017. p. 375-388. (International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS). https://doi.org/10.1145/3037697.3037728