skip to main content
research-article

Optimizing the Block I/O Subsystem for Fast Storage Devices

Published:01 June 2014Publication History
Skip Abstract Section

Abstract

Fast storage devices are an emerging solution to satisfy data-intensive applications. They provide high transaction rates for DBMS, low response times for Web servers, instant on-demand paging for applications with large memory footprints, and many similar advantages for performance-hungry applications. In spite of the benefits promised by fast hardware, modern operating systems are not yet structured to take advantage of the hardware’s full potential. The software overhead caused by an OS, negligible in the past, adversely impacts application performance, lessening the advantage of using such hardware. Our analysis demonstrates that the overheads from the traditional storage-stack design are significant and cannot easily be overcome without modifying the hardware interface and adding new capabilities to the operating system.

In this article, we propose six optimizations that enable an OS to fully exploit the performance characteristics of fast storage devices. With the support of new hardware interfaces, our optimizations minimize per-request latency by streamlining the I/O path and amortize per-request latency by maximizing parallelism inside the device. We demonstrate the impact on application performance through well-known storage benchmarks run against a Linux kernel with a customized SSD. We find that eliminating context switches in the I/O path decreases the software overhead of an I/O request from 20 microseconds to 5 microseconds and a new request merge scheme called Temporal Merge enables the OS to achieve 87% to 100% of peak device performance, regardless of request access patterns or types. Although the performance improvement by these optimizations on a standard SATA-based SSD is marginal (because of its limited interface and relatively high response times), our sensitivity analysis suggests that future SSDs with lower response times will benefit from these changes. The effectiveness of our optimizations encourages discussion between the OS community and storage vendors about future device interfaces for fast storage devices.

References

  1. Agrawal, N., Prabhakaran, V., Wobber, T., Davis, J. D., Manasse, M., and Panigrahy, R. 2008. Design tradeoffs for SSD performance. In Proceedings of the Annual USENIX Technical Conference (ATC’08). USENIX Association, 57--70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Ahmad, I., Gulati, A., and Mashtizadeh, A. 2011. Vic: Interrupt coalescing for virtual machine storage device io. In Proceedings of the Annual USENIX Technical Conference (ATC’11). USENIX Association, 4--4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Akel, A., Caulfield, A. M., Mollov, T. I., Gupta, R. K., and Swanson, S. 2011. Onyx: A protoype phase change memory storage array. In Proceedings of the 3rd USENIX Conference on Hot Topics in Storage and File Systems (HotStorage’11). USENIX Association, 2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Anand, A., Sen, S., Krioukov, A., Popovici, F., Akella, A., Arpaci-Dusseau, A., Arpaci-Dusseau, R., and Banerjee, S. 2008. Avoiding file system micromanagement with range writes. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI’08). USENIX Association, 161--176. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Anderson, E., Kallahalla, M., Uysal, M., and Swaminathan, R. 2004. Buttress: A toolkit for flexible and high fidelity i/o benchmarking. In Proceedings of the 3rd USENIX Conference on File and Storage Technologies (FAST’04). USENIX Association, 45--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Aranya, A., Wright, C. P., and Zadok, E. 2004. Tracefs: A file system to trace them all. In Proceedings of the 3rd USENIX Conference on File and Storage Technologies (FAST’04). USENIX Association, 129--145. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Aron, M. and Druschel, P. 2000. Soft timers: Efficient microsecond software timer support for network processing. ACM Trans. Comput. Syst. 18, 197--228. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Arpaci-Dusseau, R. H. and Arpaci-Dusseau, A. C. 2014. Operating systems: Three easy pieces. http://pages.cs.wisc.edu/~remzi/OSTEP/.Google ScholarGoogle Scholar
  9. Axboe, J. 2013. Fio benchmark. http://freecode.com/projects/fio.Google ScholarGoogle Scholar
  10. Ben-Yehuda, M., Factor, M., Rom, E., Traeger, A., Borovik, E., and Yassour, B.-A. 2012. Adding advanced storage controller functionality via low-overhead virtualization. In Proceedings of the 10th USENIX Conference on File and Storage Technologies (FAST’12). USENIX Association, 15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. BenchmarkSQL. 2012. http://sourceforge.net/projects/benchmarksql.Google ScholarGoogle Scholar
  12. Boyd, J. 2008. Serial ata advanced host conroller interface (ahci) 1.3. http://www.microbe.cz/docs/serial-ata-ahci-spec-rev1_3.pdf.Google ScholarGoogle Scholar
  13. Caulfield, A. M., Coburn, J., Mollov, T., De, A., Akel, A., He, J., Jagatheesan, A., Gupta, R. K., Snavely, A., and Swanson, S. 2010a. Understanding the impact of emerging non-volatile memories on high-performance, io-intensive computing. In Proceedings of the ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis (SC’10). IEEE Computer Society, 1--11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Caulfield, A. M., De, A., Coburn, J., Mollow, T. I., Gupta, R. K., and Swanson, S. 2010b. Moneta: A high performance storage array architecture for next-generation, non-volatile memories. In Proceedings of the 43rd Annual IEEE/ACM (MICRO’10). 385--395. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Caulfield, A. M., Mollov, T. I., Eisner, L. A., De, A., Coburn, J., and Swanson, S. 2012. Providing safe, user space access to fast, solid state disks. In Proceedings of the 17th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’12). ACM Press, New York, 387--400. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Chang, L.-P. and Kuo, T.-W. 2002. An adaptive striping architecture for flash memory storage systems of embedded systems. In Proceedings of the 8th Real-Time and Embedded Technology and Applications Symposium. 187--196. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Chang, X., Muppala, J., Han, Z., and Liu, J. 2008. Analysis of interrupt coalescing schemes for receive-livelock problem in gigabit ethernet network hosts. In Proceedings of the IEEE International Conference on Communications (ICC’08). 1835--1839.Google ScholarGoogle Scholar
  18. Chase, J., Gallatin, A., and Yocum, K. 2000. End-system optimizations for high-speed TCP. IEEE Comm. Mag. 39, 68--74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Chen, F., Koufaty, D. A., and Zhang, X. 2009. Understanding intrinsic characteristics and system implications of flash memory based solid state drives. In Proceedings of the 8th International Joint Conference on Measurement and Modeling of Computer Systems (SIGMETRICS’09). ACM Press, New York, 181--192. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Condit, J., Nightingale, E. B., Frost, C., Ipek, E., Lee, B., Burger, D., and Coetzee, D. 2009. Better i/o through byte-addressable, persistent memory. In Proceedings of the 22nd ACM SIGOPS Symposium on Operating Systems Principles (SOSP’09). ACM Press, New York, 133--146. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Corbet, J. 2009. Interrupt mitigation in the block layer. http://lwn.net/articles/346219.Google ScholarGoogle Scholar
  22. Corbet, J., Rubini, A., and Kroah-Hartman, G. 2005. Linux Device Drivers, 3rd Edition. O’Reilly Media. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Council, T. P. P. 2010. TPC benchmark C, standard specification, revision 5.11. http://www.tpc.org/tpcc/spec/tpcc_current.pdf.Google ScholarGoogle Scholar
  24. de Jonge, W., Kaashoek, M. F., and Hsieh, W. C. 1993. The logical disk: A new approach to improving file systems. In Proceedings of the 14th ACM Symposium on Operating Systems Principles (SOSP’93). ACM Press, New York, 15--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Dees, B. 2005. Native command queuing - Advanced performance in desktop storage. IEEE Potent. 24, 4, 4--7.Google ScholarGoogle ScholarCross RefCross Ref
  26. Denehy, T. E., Arpaci-Dusseau, A. C., and Arpaci-Dusseau, R. H. 2002. Bridging the information gap in storage protocol stacks. In Proceedings of the Annual USENIX Technical Conference (ATC’02). USENIX Association, 177--190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Dobrescu, M., Egi, N., Argyraki, K., Chun, B.-G., Fall, K., Iannaccone, G., Knies, A., Manesh, M., and Ratnasamy, S. 2009. Routebricks: Exploiting parallelism to scale software routers. In Proceedings of the 22nd ACM SIGOPS Symposium on Operating Systems Principles (SOSP’09). ACM Press, New York, 15--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. EMC. 2007. EMC Clariion Raid 6 technology: A detailed review. http://www.emc.com/collateral/hardware/whitepapers/h2891-clariion-raid-6.pdf.Google ScholarGoogle Scholar
  29. Freitas, R. F. and Wilcke, W. W. 2008. Storage-class memory: The next storage system technology. IBM J. Res. Dev. 52, 439--447. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Fusion-IO. 2014a. iodrive OCTAL data sheet. http://www.fusionio.com/data-sheets/iodrive-octal-data-sheet/.Google ScholarGoogle Scholar
  31. Fusion-IO. 2014b. iomemory virtual storage layer (vsl). http://www.fusionio.com/overviews/vsl-technical-overview/.Google ScholarGoogle Scholar
  32. Ganger, G. R. 2001. Blurring the line between oses and storage devices. Tech. rep. CMU-CS-01-166, Carnegie Mellon University.Google ScholarGoogle Scholar
  33. Ganger, G. R. and Patt, Y. N. 1998. Using system-level models to evaluate i/o subsystem designs. IEEE Trans. Comput. 47, 6, 667--678. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Geist, R. and Daniel, S. 1987. A continuum of disk scheduling algorithms. ACM Trans. Comput. Syst. 5, 1, 77--92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Gibson, G. A., Nagle, D. F., Amiri, K., Butler, J., Chang, F. W., Gobioff, H., Hardin, C., Riedel, E., Rochberg, D., and Zelenka, J. 1998. A cost-effective, high-bandwidth storage architecture. In Proceedings of the 8th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’98). ACM Press, New York, 92--103. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Gibson, G. A., Nagle, D. F., Amiri, K., Chang, F. W., Feinberg, E. M., Gobioff, H., Lee, C., Ozceri, B., Riedel, E., Rochberg, D., and Zelenka, J. 1997. File server scaling with network-attached secure disks. In Proceedings of the ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS’97). ACM Press, New York, 272--284. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Gleixner, T. and Molnar, I. 2014. Hrtimers - Subsystem for high-resolution kernel timers, kernel 2.6.32 documentation. https://github.com/alibaba/taobao-kernel/blob/master/redhat-kernel-source/linux-2.6.32/Documentation/timers/hrtimers.txt.Google ScholarGoogle Scholar
  38. Gleixner, T. and Niehaus, D. 2006. Hrtimers and beyond: Transforming the Linux time subsystems. In Proceedings of the Ottawa Linux Symposium (OLS’06). Vol. 1. 333--346.Google ScholarGoogle Scholar
  39. Hadoop. 2014. http://hadoop.apache.org/.Google ScholarGoogle Scholar
  40. Hall, C. and Bonnet, P. 2005. Getting priorities straight: Improving linux support for database i/o. In Proceedings of the 31st International Conference on Very Large Data Bases (VLDB’05). 1116--1127. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Han, S., Jang, K., Park, K., and Moon, S. 2010. Packetshader: A GPU-accelerated software router. SIGCOMM Comput. Comm. Rev. 40, 4, 195--206. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. HPArrayCont. 2014. Hp smart array controller. http://www8.hp.com/us/en/products/iss-ontrollers/index.html.Google ScholarGoogle Scholar
  43. Hu, X.-Y., Eleftheriou, E., Haas, R., Iliadis, I., and Pletka, R. 2009. Write amplification analysis in flash-based solid state drives. In Proceedings of SYSTOR: The Israeli Experimental Systems Conference (SYSTOR’09). ACM Press, New York, 10:1--10:9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Huang, L. and Chiueh, T. 2000. Implementation of a rotation latency sensitive disk scheduler. Tech. rep. ECSL-TR81, SUNY, Stony Brook.Google ScholarGoogle Scholar
  45. Huffman, A. 2012a. NVM express (rev.1.0c). Tech. rep., Intel Corporation.Google ScholarGoogle Scholar
  46. Huffman, A. 2012b. NVM express (revision 1.1), http://www.nvmexpress.org/wp-content/uploads/nvm-express-1_1.pdf.Google ScholarGoogle Scholar
  47. Infiniband. 2014. http://www.mellanox.com/page/infiniband_cards_overview.Google ScholarGoogle Scholar
  48. Intel. 2006. Accelerating high-speed networking with intel i/o acceleration technology. http://download.intel.com/support/network/sb/98856.pdf.Google ScholarGoogle Scholar
  49. Intel. 2007. Improving network performance in multi-core systems. http://www.intel.com/content/dam/doc/white-paper/improving-network-performance-in-multi-core-systems-paper.pdf.Google ScholarGoogle Scholar
  50. Intel and Seagate. 2003. Serial ATA native command queueing. http://www.seagate.com/docs/pdf/whitepaper/D2c_tech_paper_intc-stx_sata_ncq.pdf.Google ScholarGoogle Scholar
  51. Iyer, S. and Druschel, P. 2001. Anticipatory scheduling: A disk scheduling framework to overcome deceptive idleness in synchronous i/o. In Proceedings of the 8th ACM Symposium on Operating Systems Principles (SOSP’01). ACM Press, New York, 117--130. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Jacobson, D. M. and Wilkes, J. 1991. Disk scheduling algorithms based on rotational position. Tech. rep. HPL-CSP-91-7rev1, HP Laboratories.Google ScholarGoogle Scholar
  53. Josephson, W. K., Bongo, L. A., Li, K., and Flynn, D. 2010. Dfs: A file system for virtualized flash storage. ACM Trans. Storage 6, 3, 14:1--14:25. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Katcher, J. 1997. Postmark: A new file system benchmark. Tech. rep. TR3022, Network Applicance, Inc.Google ScholarGoogle Scholar
  55. Kim, H., Seshadri, S., Dickey, C. L., and Chiu, L. 2014. Evaluating phase change memory for enterprise storage systems: A study of caching and tiering approaches. In Proceedings of the 12th USENIX Conference on File and Storage Technologies (FAST’14). 33--45. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Kim, H.-Y. and Rixner, S. 2006. Connection handoff policies for TCP offload network interfaces. In Proceedings of the 7th Symposium on Operating Systems Design and Implementation (OSDI’06). USENIX Association, 293--306. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Kim, I., Moon, J., and Yeom, H. Y. 2001. Timer-based interrupt mitigation for high performance packet processing. In Proceedings of the 5th International Conference on High Performance Computing in the Asia-Pacific Region, Gold.Google ScholarGoogle Scholar
  58. Knight, F. and Stevens, C. E. 2012. Sbc-3 LBA access hints, t10/11-436 r6. http://www.t10.org/cgi-bin/ac.pl?t=d&f=11-436r6.pdf.Google ScholarGoogle Scholar
  59. Kohler, E., Morris, R., Chen, B., Jannotti, J., and Kaashoek, M. F. 2000. The click modular router. ACM Trans. Comput. Syst. 18, 3, 263--297. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Lee, B. C., Ipek, E., Mutlu, O., and Burger, D. 2009. Architecting phase change memory as a scalable dram alternative. In Proceedings of the 36th International Symposium on Computer Architecture (ISCA’09). ACM Press, New York, 2--13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Lee, S., Fleming, K., Park, J., Ha, K., Caulfield, A. M., Swanson, S., Arvind, and Kim, J. 2010. Bluessd: An open platform for cross-layer experiments for nand flash-based SSDs. In Proceedings of the 5th Workshop on Architectural Research Prototyping.Google ScholarGoogle Scholar
  62. Lee, S.-W., Moon, B., Park, C., Kim, J.-M., and Kim, S.-W. 2008. A case for flash memory SSD in enterprise database applications. In Proceedings of the ACM International Conference on Management of Data (SIGMOD’08). ACM Press, New York, 1075--1086. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Linux. 2014. Linux kernel version 3.13. https://www.kernel.org/pub/linux/kernel/v3.0/linux-3.13.tar.gz.Google ScholarGoogle Scholar
  64. Liu, J. and Abali, B. 2009. Virtualization polling engine (VPE): Using dedicated cpu cores to accelerate i/o virtualization. In Proceedings of the 23rd International Conference on Supercomputing (ICS’09). ACM Press, New York, 225--234. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Lumb, C. R., Schindler, J., Ganger, G. R., Nagle, D. F., and Riedel, E. 2000. Towards higher disk head utilization: Extracting free bandwidth from busy disk drives. In Proceedings of the 4th Conference on Symposium on Operating System Design and Implementation (OSDI’00). USENIX Association, 7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Makineni, S. and Iyer, R. 2004. Architectural characterization of tcp/ip packet processing on the pentium m microprocessor. In Proceedings of the 10th International Symposium on High Performance Computer Architecture (HPCA’04). IEEE Computer Society, 152--161. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Menon, A. and Zwaenepoel, W. 2008. Optimizing TCP receive performance. In Proceedings of the Annual USENIX Technical Conference (ATC’08). USENIX Association, 85--98. Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Mesnier, M., Ganger, G., and Riedel, E. 2003. Object-based storage. IEEE Comm. Mag. 41, 8, 84--90. Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. Myrinet. 2014. https://www.myricom.com/products/network-adapters.html.Google ScholarGoogle Scholar
  70. Nam, E. H., Kim, B. S. J., Eom, H., and Min, S. L. 2011. Ozone (o3): An out-of-order flash memory controller architecture. IEEE Trans. Comput. 60, 5, 653--666. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Narayanan, D., Thereska, E., Donnelly, A., Elnikety, S., and Rowstron, A. 2009. Migrating server storage to SSDs: Analysis of tradeoffs. In Proceedings of the 4th ACM European Conference on Computer Systems (EuroSys’09). ACM Press, New York, 145--158. Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. NetApp. 2012. Fas6200 series enterprise storage systems. http://www.netapp.com/us/products/storage-systems/fas6200/.Google ScholarGoogle Scholar
  73. Norcott, W. and Capps, D. 1998. Iozone filesystem benchmark. http://www.iozone.org.Google ScholarGoogle Scholar
  74. OpenIndiana. 2014. Openindiana build 151a8 (server). http://openindiana.org/.Google ScholarGoogle Scholar
  75. Pai, V. S., Druschel, P., and Zwaenepoel, W. 2000. Io-lite: A unified i/o buffering and caching system. ACM Trans. Comput. Syst. 18, 1, 37--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. PCIE. 2014. Pci express specification. http://www.pcisig.com/specifications/pciexpress/.Google ScholarGoogle Scholar
  77. Qureshi, M. K., Srinivasan, V., and Rivers, J. A. 2009. Scalable high performance main memory system using phase-change memory technology. In Proceedings of the 36th International Symposium on Computer Architecture (ISCA’09). 24--33. Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Raoux, S., Burr, G. W., Breitwisch, M. J., Rettner, C. T., C. Chen, Y., Shelby, R. M., Salinga, M., Krebs, D., H. Chen, S., L. Lung, H., and Lam, C. H. 2008. Phase-change random access memory: A scalable technology. ACM Trans. Comput. Syst. 9, 4.Google ScholarGoogle Scholar
  79. Riska, A., Larkby-Lahet, J., and Riedel, E. 2007. Evaluating block-level optimization through the io path. In Proceedings of the Annual USENIX Technical Conference (ATC’07). USENIX Association, 19:1--19:14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. Ruemmler, C. and Wilkes, J. 1994. An introduction to disk drive modeling. Comput. 27, 17--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. Salah, K., El-Badawi, K., and Haidari, F. 2007. Performance analysis and comparison of interrupt-handling schemes in gigabit networks. Comput. Comm. 30, 3425--3441. Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. Salah, K. and Qahtan, A. 2009. Implementation and experimental performance evaluation of a hybrid interrupt-handling scheme. Comput. Comm. 32, 179--188. Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Saxena, M., Zhang, Y., Swift, M. M., Arpaci-Dusseau, A. C., and Arpaci-Dusseau, R. H. 2013. Getting real: Lessons in transitioning research simulations into hardware systems. In Proceedings of the 11th Conference on File and Storage Technologies (FAST’13). Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. Schindler, J., Schlosser, S. W., Shao, M., Ailamaki, A., and Ganger, G. R. 2004. Atropos: A disk array volume manager for orchestrated use of disks. In Proceedings of the 3rd USENIX Conference on File and Storage Technologies (FAST’04). USENIX Association, 159--172. Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. Seelam, S., Romero, R., Teller, P., and Buros, B. 2005. Enhancements to linux i/o scheduling. In Linux Symposium.Google ScholarGoogle Scholar
  86. Seltzer, M., Chen, P., and Ousterhout, J. 1990. Disk scheduling revisited. In Proceedings of the USENIX Winter Technical Conference (USENIXWinter’90). 313--324.Google ScholarGoogle Scholar
  87. Seppanen, E., O’Keefe, M. T., and Lilja, D. J. 2010. High performance solid state storage under linux. In Proceedings of the IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST’10). IEEE Computer Society, 1--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  88. Shin, D. I., Yu, Y. J., Kim, H. S., Choi, J. W., Jung, D. Y., and Yeom, H. Y. 2013. Dynamic interval polling and pipelined post i/o processing for low-latency storage class memory. In Proceedings of the 5th USENIX Conference on Hot Topics in Storage and File Systems (HotStorage’13). USENIX Association, 5--5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  89. Shin, D. I., Yu, Y. J., Kim, H. S., Eom, H., and Yeom, H. Y. 2011. Request bridging and interleaving: Improving the performance of small synchronous updates under seek-optimizing disk subsystems. ACM Trans. Storage 7, 2, 4:1--4:31. Google ScholarGoogle ScholarDigital LibraryDigital Library
  90. Shin, D. I., Yu, Y. J., and Yeom, H. Y. 2007. Shedding light in the black-box: Structural modeling of modern disk drives. In Proceedings of the 15th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS’07). IEEE Computer Society, 410--417. Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. Sivathanu, G., Sundararaman, S., and Zadok, E. 2006. Type-safe disks. In Proceedings of the 7th Symposium on Operating Systems Design and Implementation (OSDI’06). USENIX Association, 15--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  92. Sivathanu, M., Bairavasundaram, L. N., Arpaci-Dusseau, A. C., and Arpaci-Dusseau, R. H. 2004. Life or death at block-level. In Proceedings of the 6th Conference on Symposium on Opearting Systems Design and Implementation (OSDI’04). USENIX Association, 26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  93. Sivathanu, M., Prabhakaran, V., Popovici, F. I., Denehy, T. E., Arpaci-Dusseau, A. C., and Arpaci-Dusseau, R. H. 2003. Semantically-smart disk systems. In Proceedings of the 2nd USENIX Conference on File and Storage Technologies (FAST’03). USENIX Association, 73--88. Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. Sundararaman, S., Sivathanu, G., and Zadok, E. 2008. Selective versioning in a secure disk system. In Proceedings of the 17th Conference on Security Symposium (SS’08). USENIX Association, 259--274. Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. T10. 2009. Object-based storage devices -- 2. http://www.t10.org/drafts.htm#osdfamily.Google ScholarGoogle Scholar
  96. Taejin. 2014. Extreme 3804 (the previous generation to hha3804). http://www.taejin.co.kr/taejin/taejineng/pro01_01.asp.Google ScholarGoogle Scholar
  97. Traeger, A., Zadok, E., Joukov, N., and Wright, C. P. 2008. A nine year study of file system and storage benchmarking. ACM Trans. Storage 4, 2, 5:1--5:56. Google ScholarGoogle ScholarDigital LibraryDigital Library
  98. Vasudevan, V., Andersen, D. G., and Kaminsky, M. 2011. The case for VOS: The vector operating system. In Proceedings of the 13th USENIX Conference on Hot Topics in Operating Systems (HotOS’13). USENIX Association, 31--31. Google ScholarGoogle ScholarDigital LibraryDigital Library
  99. von Eicken, T., Basu, A., Buch, V., and Vogels, W. 1995. U-net: A user-level network interface for parallel and distributed computing. In Proceedings of the 15th ACM Symposium on Operating Systems Principles (SOSP’95). ACM Press, New York, 40--53. Google ScholarGoogle ScholarDigital LibraryDigital Library
  100. von Eicken, T., Culler, D. E., Goldstein, S. C., and Schauser, K. E. 1992. Active messages: A mechanism for integrated communication and computation. In Proceedings of the 19th Annual International Symposium on Computer Architecture (ISCA’92). ACM Press, New York, 256--266. Google ScholarGoogle ScholarDigital LibraryDigital Library
  101. Wang, R. Y., Anderson, T. E., and Patterson, D. A. 1999. Virtual log based file systems for a programmable disk. In Proceedings of the 3rd Symposium on Operating Systems Design and Implementation (OSDI’99). USENIX Association, 29--43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  102. Worthington, B. L., Ganger, G. R., and Patt, Y. N. 1994. Scheduling algorithms for modern disk drives. In Proceedings of the ACM SIGMETRICS Conference on Measurement and Modeling of Computer Systems (SIGMETRICS’94). 241--251. Google ScholarGoogle ScholarDigital LibraryDigital Library
  103. Wu, X. and Reddy, A. L. N. 2011. SCMFS: A file system for storage class memory. In Proceedings of International Conference for High Performance Computing, Networking, Storage and Analysis (SC’11). ACM Press, New York, 39:1--39:11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  104. Yang, J., Minturn, D. B., and Hady, F. 2012. When poll is better than interrupt. In Proceedings of the 10th USENIX Conference on File and Storage Technologies (FAST’12). USENIX Association, 3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  105. Yoo, B., Won, Y., Choi, J., Yoon, S., Cho, S., and Kang, S. 2011. SSD characterization: From energy consumption’s perspective. In Proceedings of the 3rd USENIX Conference on Hot Topics in Storage and File Systems (HotStorage’11). USENIX Association, 3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  106. Yu, Y. J. 2012. Optimizing block i/o subsystem for fast storage devices. Ph.D. thesis, Seoul National University.Google ScholarGoogle Scholar
  107. Yu, Y. J., Shin, D. I., Eom, H., and Yeom, H. Y. 2010. NCQ vs. i/o scheduler: Preventing unexpected misbehaviors. ACM Trans. Storage 6, 1, 2:1--2:37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  108. Yu, Y. J., Shin, D. I., Shin, W., Song, N. Y., Eom, H., and Yeom, H. Y. 2012. Exploiting peak device throughput from random access workload. In Proceedings of the 4th USENIX Conference on Hot Topics in Storage and File Systems (HotStorage’12). USENIX Association, 7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  109. Zhang, J., Sivasubramaniam, A., Wang, Q., Riska, A., and Riedel, E. 2006. Storage performance virtualization via throughput and latency control. ACM Trans. Storage 2, 283--308. Google ScholarGoogle ScholarDigital LibraryDigital Library
  110. Zhang, Y., Arulraj, L. P., Arpaci-Dusseau, A. C., and Arpaci-Dusseau, R. H. 2012. De-indirection for flashbased SSDs with nameless writes. In Proceedings of the 10th USENIX Conference on File and Storage Technologies (FAST’12). USENIX Association, 1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  111. Zhou, P., Zhao, B., Yang, J., and Zhang, Y. 2009. A durable and energy efficient main memory using phase change memory technology. In Proceedings of the 36th Annual International Symposium on Computer Architecture (ISCA’09). ACM Press, New York, 14--23. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Optimizing the Block I/O Subsystem for Fast Storage Devices

                    Recommendations

                    Comments

                    Login options

                    Check if you have access through your login credentials or your institution to get full access on this article.

                    Sign in

                    Full Access

                    • Published in

                      cover image ACM Transactions on Computer Systems
                      ACM Transactions on Computer Systems  Volume 32, Issue 2
                      June 2014
                      117 pages
                      ISSN:0734-2071
                      EISSN:1557-7333
                      DOI:10.1145/2642648
                      Issue’s Table of Contents

                      Copyright © 2014 ACM

                      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                      Publisher

                      Association for Computing Machinery

                      New York, NY, United States

                      Publication History

                      • Published: 1 June 2014
                      • Accepted: 1 April 2014
                      • Revised: 1 February 2014
                      • Received: 1 May 2013
                      Published in tocs Volume 32, Issue 2

                      Permissions

                      Request permissions about this article.

                      Request Permissions

                      Check for updates

                      Qualifiers

                      • research-article
                      • Research
                      • Refereed

                    PDF Format

                    View or Download as a PDF file.

                    PDF

                    eReader

                    View online with eReader.

                    eReader