skip to main content
research-article

A File Is Not a File: Understanding the I/O Behavior of Apple Desktop Applications

Published:01 August 2012Publication History
Skip Abstract Section

Abstract

We analyze the I/O behavior of iBench, a new collection of productivity and multimedia application workloads. Our analysis reveals a number of differences between iBench and typical file-system workload studies, including the complex organization of modern files, the lack of pure sequential access, the influence of underlying frameworks on I/O patterns, the widespread use of file synchronization and atomic operations, and the prevalence of threads. Our results have strong ramifications for the design of next generation local and cloud-based storage systems.

References

  1. Agrawal, N., Bolosky, W. J., Douceur, J. R., and Lorch, J. R. 2007. A five-year study of file-system metadata. In Proceedings of the USENIX Conference on File and Storage Technologies (FAST). Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Agrawal, N., Arpaci-Dusseau, A. C., and Arpaci-Dusseau, R. H. 2009. Generating realistic impressions for file-system benchmarking. In Proceedings of the USENIX Conference on File and Storage Technologies (FAST). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Apple Computer, Inc. 2011. AppleScript Language Guide. https://developer.apple.com/library/mac/documentation/applescript/conceptual/applescriptlangguide/AppleScriptLanguageGuide.pdf.Google ScholarGoogle Scholar
  4. Baker, M., Hartman, J., Kupfer, M., Shirriff, K., and Ousterhout, J. 1991. Measurements of a distributed file system. In Proceedings of the 13th ACM Symposium on Operating System Principles (SOSP’91). 198--212. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bartlett, W. and Spainhower, L. 2004. Commercial fault tolerance: A tale of two systems. IEEE Trans. Depend. Secure Comput. 1, 1, 87--96. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Blake, G., Dreslinski, R. G., Mudge, T., and Flautner, K. 2010. Evolution of thread-level parallelism in desktop applications. SIGARCH Comput. Archit. News 38, 302--313. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Bonwick, J. and Moore, B. 2007. ZFS: The last word in file systems. http://opensolaris.org/os/community/ zfs/docs/zfs_last.pdf.Google ScholarGoogle Scholar
  8. Cantrill, B., Shapiro, M. W., and Leventhal, A. H. 2004. Dynamic instrumentation of production systems. In Proceedings of USENIX’04. 15--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Decandia, G., Hastorun, D., Jampani, M., Kakulapati, G., Lakshman, A., Pilchin, A., Sivasubramanian, S., Vosshall, P., and Vogels, W. 2007. Dynamo: Amazon’s highly available key-value store. In Proceedings of the ACM Symposium on Operating System Principles (SOSP’07). Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Douceur, J. R. and Bolosky, W. J. 1999. A large-scale study of file-system contents. In Proceedings of the SIGMETRICS’99. 59--69. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Ellard, D. and Seltzer, M. I. 2003. New NFS tracing tools and techniques for system analysis. In Proceedings of the 17th Large Installation Systems Administration Conference (LISA’03). 73--85. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Endo, Y., Wang, Z., Chen, J. B., and Seltzer, M. 1994. Using latency to evaluate interactive system performance. In Proceedings of the USENIX 2nd Symposium on OS Design and Implementation (OSDI’96). Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Flautner, K., Uhlig, R., Reinhardt, S., and Mudge, T. 2000. Thread-level parallelism and interactive performance of desktop applications. SIGPLAN Not. 35, 129--138. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Ghemawat, S., Gobioff, H., and Leung, S.-T. 2003. The Google file system. In Proceedings of the ACM Symposium on Operating System Principles (SOSP’03). 29--43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Hagmann, R. 1987. Reimplementing the cedar file system using logging and group commit. In Proceedings of the ACM Symposium on Operating System Principles (SOSP’87). Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Harter, T., Dragga, C., Vaughn, M., Arpaci-Dusseau, A. C., and Arpaci-Dusseau, R. H. 2011. A file is not a file: Understanding the I/O behavior of apple desktop applications. In Proceedings of the 23rd ACM Symposium on Operating Systems Principles (SOSP’11). ACM, New York, 71--83. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Howard, J., Kazar, M., Menees, S., Nichols, D., Satyanarayanan, M., Sidebotham, R., and West, M. 1988. Scale and performance in a distributed file system. ACM Trans. Comput. Syst. 6, 1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Jacob, D. R., Lorch, J. R., and Anderson, T. E. 2000. A comparison of file system workloads. In Proceedings of the USENIX Annual Technical Conference. 41--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Lampson, B. 1999. Computer systems research -- Past and present. In Proceedings of SOSP’17.Google ScholarGoogle Scholar
  20. Lee, E. K. and Thekkath, C. A. 1996. Petal: Distributed virtual disks. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Leung, A. W., Pasupathy, S., Goodson, G. R., and Miller, E. L. 2008. Measurement and analysis of large-scale network file system workloads. In Proceedings of USENIX’08. 213--226. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Macintosh Business Unit (Microsoft). 2006. It’s all in the numbers... blogs.msdn.com/b/macmojo/archive/2006/11/03/it-s-all-in-the-numbers.aspx.Google ScholarGoogle Scholar
  23. McKusick, M. K., Joy, W. N., Leffler, S. J., and Fabry, R. S. 1984. A fast file system for UNIX. ACM Trans. Comput. Syst. 2, 3, 181--197. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Mogul, J. C. 1994. A better update policy. In Proceedings of USENIX Summer’94. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Olson, J. 2007. Enhance your apps with file system transactions. http://msdn.microsoft.com/enus/magazine/cc163388.aspx.Google ScholarGoogle Scholar
  26. Ousterhout, J. 1995. Why threads are a bad idea (for most purposes). www.standard.edu/class/cs240/readings/theads-bad-usenix96.pdf.Google ScholarGoogle Scholar
  27. Ousterhout, J. K., Costa, H. D., Harrison, D., Kunze, J. A., Kupfer, M., and Thompson, J. G. 1985. A trace-driven analysis of the UNIX 4.2 BSD file system. In Proceedings of the ACM Symposium on Operating System Principles (SOSP’85). 15--24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Patterson, D., Gibson, G., and Katz, R. 1988. A case for redundant arrays of inexpensive disks (RAID). In Proceedings of the ACM SIGMOD Conference (SIGMOD’88). 109--116. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Patterson, R. H., Gibson, G. A., Ginting, E., Stodolsky, D., and Zelenka, J. 1995. Informed prefetching and caching. In Proceedings of the ACM Symposium on Operating System Principles (SOSP’95). 79--95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Pike, R. 2010. Another go at language design. http://www.stanford.edu/class/ee380/Abstracts/100428.html.Google ScholarGoogle Scholar
  31. Prabhakaran, V., Arpaci-Dusseau, A. C., and Arpaci-Dusseau, R. H. 2005a. Analysis and evolution of journaling file systems. In Proceedings of USENIX’05. 105--120. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Prabhakaran, V., Bairavasundaram, L. N., Agrawal, N., Gunawi, H. S., Arpaci-Dusseau, A. C., and Arpaci-Dusseau, R. H. 2005b. IRON file systems. In Proceedings of the ACM Symposium on Operating System Principles (SOSP’95). 206--220. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Ramakrishnan, K. K., Biswas, P., and Karedla, R. 1992. Analysis of file I/O traces in commercial computing environments. SIGMETRICS Perform. Eval. Rev. 20, 78--90. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Ritchie, D. M. and Thompson, K. 1973. The UNIX time-sharing system. In Proceedings of the ACM Symposium on Operating System Principles (SOSP’73).Google ScholarGoogle Scholar
  35. Roselli, D., Lorch, J. R., and Anderson, T. E. 2000. A comparison of file system workloads. In Proceedings of USENIX’00. 41--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Rosenblum, M. and Ousterhout, J. 1992. The design and implementation of a log-structured file system. ACM Trans. Comput. Syst. 10, 1, 26--52. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Sandberg, R. 1985. The design and implementation of the sun network file system. In Proceedings of the USENIX Summer Technical Conference. 119--130.Google ScholarGoogle Scholar
  38. Satyanarayanan, M. 1981. A study of file sizes and functional lifetimes. In Proceedings of the ACM Symposium on Operating System Principles (SOSP’81). 96--108. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. SQLite. 2012. SQLite: Frequently Asked Questions. http://www.sqlite.org/faq.html.Google ScholarGoogle Scholar
  40. Sweeney, A., Doucette, D., Hu, W., Anderson, C., Nishimoto, M., and Peck, G. 1996. Scalability in the XFS file system. In Proceedings of USENIX’96. San Diego, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Tilmann, M. 2010. Apple’s market share in the PC world continues to surge. maclife.com.Google ScholarGoogle Scholar
  42. Vogels, W. 1999. File system usage in Windows NT 4.0. In Proceedings of the ACM Symposium on Operating System Principles (SOSP’99). 93--109. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Woo, S. C., Ohara, M., Torrie, E., Shingh, J. P., and Gupta, A. 1995. The SPLASH-2 programs: Characterization and methodological considerations. In Proceedings of the International Symposium on Computer Architecture (ISCA’95). 24--36. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A File Is Not a File: Understanding the I/O Behavior of Apple Desktop Applications

      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 30, Issue 3
        August 2012
        97 pages
        ISSN:0734-2071
        EISSN:1557-7333
        DOI:10.1145/2324876
        Issue’s Table of Contents

        Copyright © 2012 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 August 2012
        • Accepted: 1 May 2012
        • Received: 1 March 2012
        Published in tocs Volume 30, Issue 3

        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
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!