A file is not a file: understanding the I/O behavior of Apple desktop applications

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.

[1]  Krisztián Flautner,et al.  Evolution of thread-level parallelism in desktop applications , 2010, ISCA.

[2]  Mendel Rosenblum,et al.  The design and implementation of a log-structured file system , 1991, SOSP '91.

[3]  Bryan Cantrill,et al.  Dynamic Instrumentation of Production Systems , 2004, USENIX Annual Technical Conference, General Track.

[4]  Zheng Wang,et al.  Using latency to evaluate interactive system performance , 1996, OSDI '96.

[5]  Andrea C. Arpaci-Dusseau,et al.  IRON file systems , 2005, SOSP '05.

[6]  John K. Ousterhout,et al.  Why Threads Are A Bad Idea (for most purposes) , 2003 .

[7]  Trevor Mudge,et al.  Thread-level parallelism and interactive performance of desktop applications , 2000, SIGP.

[8]  Thomas E. Anderson,et al.  A Comparison of File System Workloads , 2000, USENIX Annual Technical Conference, General Track.

[9]  Werner Vogels,et al.  File system usage in Windows NT 4.0 , 1999, SOSP.

[10]  Shankar Pasupathy,et al.  Measurement and Analysis of Large-Scale Network File System Workloads , 2008, USENIX Annual Technical Conference.

[11]  Werner Vogels,et al.  Dynamo: amazon's highly available key-value store , 2007, SOSP.

[12]  William J. Bolosky,et al.  A large-scale study of file-system contents , 1999, SIGMETRICS '99.

[13]  Andrea C. Arpaci-Dusseau,et al.  Analysis and Evolution of Journaling File Systems , 2005, USENIX Annual Technical Conference, General Track.

[14]  Mahadev Satyanarayanan,et al.  A study of file sizes and functional lifetimes , 1981, SOSP.

[15]  Jim Zelenka,et al.  Informed prefetching and caching , 1995, SOSP.

[16]  Andrea C. Arpaci-Dusseau,et al.  Generating realistic impressions for file-system benchmarking , 2009, TOS.

[17]  K. K. Ramakrishnan,et al.  Analysis of file I/O traces in commercial computing environments , 1992, SIGMETRICS '92/PERFORMANCE '92.

[18]  Robert S. Fabry,et al.  A fast file system for UNIX , 1984, TOCS.

[19]  Mary Baker,et al.  Measurements of a distributed file system , 1991, SOSP '91.

[20]  Wei Hu,et al.  Scalability in the XFS File System , 1996, USENIX Annual Technical Conference.

[21]  Margo I. Seltzer,et al.  New NFS Tracing Tools and Techniques for System Analysis , 2003, LISA.

[22]  Robert B. Hagmann,et al.  Reimplementing the Cedar file system using logging and group commit , 1987, SOSP '87.

[23]  Dennis M. Ritchie,et al.  The UNIX time-sharing system , 1973, SOSP '73.

[24]  John K. Ousterhout,et al.  Why Threads Are A Bad Idea , 2013 .

[25]  Anoop Gupta,et al.  The SPLASH-2 programs: characterization and methodological considerations , 1995, ISCA.

[26]  John Kunze,et al.  A trace-driven analysis of the unix 4 , 1985, SOSP 1985.

[27]  Jeffrey C. Mogul,et al.  A Better Update Policy , 1994, USENIX Summer.

[28]  Randy H. Katz,et al.  A case for redundant arrays of inexpensive disks (RAID) , 1988, SIGMOD '88.

[29]  Mahadev Satyanarayanan,et al.  Scale and performance in a distributed file system , 1988, TOCS.

[30]  Chandramohan A. Thekkath,et al.  Petal: distributed virtual disks , 1996, ASPLOS VII.

[31]  Lisa Spainhower,et al.  Commercial fault tolerance: a tale of two systems , 2004, IEEE Transactions on Dependable and Secure Computing.

[32]  Jacob R. Lorch,et al.  A five-year study of file-system metadata , 2007, TOS.

[33]  Howard Gobioff,et al.  The Google file system , 2003, SOSP '03.