Publications

Books

  1. J. Ousterhout, A Philosophy of Software Design, Yaknyam Press, April 2018, 178 pages.
  2. J. Ousterhout, Tcl and the Tk Toolkit, Addison-Wesley, Reading Massachusetts, 1994, 460 pages.
  3. J. Ousterhout, Medusa: A Distributed Operating System, UMI Research Press, Ann Arbor, Michigan, 1981, 139 pages.

Papers in Refereed Journals

  1. J. Ousterhout, "Always Measure One Level Deeper," Communications of the ACM, Vol. 61, No. 7, July 2018, pp. 74–83.
  2. J. Ousterhout, A. Gopalan, A. Gupta, A. Kejriwal, C. Lee, B. Montazeri, D. Ongaro, S. J. Park, H. Qin, M. Rosenblum, S. Rumble, R. Stutsman, and S. Yang, "The RAMCloud Storage System," ACM Transactions on Computer Systems, Vol. 33, No. 3, August 2015, pp. 7:1–7:55.
  3. J. Ousterhout, P. Agrawal, D. Erickson, C. Kozyrakis, J. Leverich, D., Mazières, S. Mitra, A. Narayanan, D. Ongaro, G. Parulkar, M. Rosenblum, S. Rumble, E. Stratmann, and R. Stutsman, "The Case for RAMCloud," Communications of the ACM, Vol. 54, No. 7, July 2011, pp. 121–130.
  4. J. Ousterhout, "Scripting: Higher-Level Programming for the 21st Century," IEEE Computer, Vol. 31, No. 3, March 1998, pp. 23–30.
  5. J. Hartman and J. Ousterhout, "The Zebra Striped Network File System," ACM Transactions on Computer Systems, Vol. 13, No. 3, August 1995, pp. 274–310. An earlier version appears in Proc. 14th Symposium on Operating Systems Principles, December, 1993, pp. 29–43.
  6. M. Rosenblum and J. Ousterhout, "The Design and Implementation of a Log-Structured File System," ACM Transactions on Computer Systems, Vol. 10, No. 1, February 1992, pp. 26–52. Also appears in Proc. 13th Symposium on Operating Systems Principles, October, 1991, pp. 1–15.
  7. F. Douglis, M.F. Kaashoek, , J. Ousterhout, and A.S. Tanenbaum, "A Comparison of Two Distributed Systems: Amoeba and Sprite," Computing Systems, Vol. 4, No. 4, Fall 1991, pp. 353–384.
  8. F. Douglis and J. Ousterhout, "Transparent Process Migration: Design Alternatives and the Sprite Implementation," Software Practice and Experience, Vol. 21, No. 8, August, 1991, pp. 757–785.
  9. J. Ousterhout, A. Cherenson, F. Douglis, M. Nelson and B. Welch, "The Sprite Network Operating System," IEEE Computer, Vol. 21, No. 2, February 1988, pp. 23–36.
  10. M. Nelson, B. Welch, and J. Ousterhout, "Caching in the Sprite Network File System," ACM Transactions on Computer Systems, Vol. 6, No. 1, February 1988, pp. 134–154. Also appears in Proc. 11th Symposium on Operating Systems Principles, November 1987.
  11. M. Hill et al., "Design Decisions in SPUR," IEEE Computer, Vol. 19, No. 11, November 1986, pp. 8–22.
  12. W. Scott and J. Ousterhout, "Magic's Circuit Extractor," IEEE Design and Test of Computers, Vol. 3, No. 1, February 1986, pp. 24–34. An earlier version appears in Proc. 22nd Design Automation Conference, June 1985, pp. 286–292.
  13. J. Ousterhout, "A Switch-Level Timing Verifier for Digital MOS VLSI," IEEE Transactions on Computer-Aided Design, Vol. CAD-4, No. 3, July 1985, pp. 336–349.
  14. J. Ousterhout, G. Hamachi, R. Mayo, W. Scott, and G. Taylor, "The Magic VLSI Layout System," IEEE Design and Test of Computers, Vol. 2, No. 1, February 1985, pp. 19–30.
  15. J. Ousterhout, "The User Interface and Implementation of an IC Layout Editor," IEEE Transactions on Computer-Aided Design, Vol. CAD-3, No. 3, July 1984, pp. 242–249.
  16. J. Ousterhout, "Corner Stitching: A Data Structuring Technique for VLSI Layout Tools," IEEE Transactions on Computer-Aided Design, Vol. CAD-3, No. 1, January 1984, pp. 87–100.
  17. J. Ousterhout, D. Scelza, and P. Sindhu, "Medusa: An Experiment in Distributed Operating System Structure," Communications of the ACM, Vol. 23, No. 2, February, 1980, pp. 92–105.
  18. S. Fuller, J. Ousterhout, L. Raskin, P. Rubinfeld, P. Sindhu, and R. Swan, "Multi-microprocessors: An Overview and Working Example," Proceedings of the IEEE, Vol. 66, No. 2, February 1978, pp. 216–228.

Papers in Refereed Conference Proceedings

  1. J. Ousterhout, "A Linux Kernel Implementation of the Homa Transport Protocol," 2021 USENIX Annual Technical Conference (USENIX ATC '21), July 2021, pp. 773–787.
  2. Y. Li, S. Park, and J. Ousterhout, "MilliSort and MilliQuery: Large-Scale Data-Intensive Computing in Milliseconds," Proc. 18th USENIX Symposium on Networked Systems Design and Implementation (NSDI 21), April 2021, pp. 593–611.
  3. S. Tollman, S. Park, and J. Ousterhout, "EPaxos Revisited," Proc. 18th USENIX Symposium on Networked Systems Design and Implementation (NSDI 21), April 2021, pp. 613–632.
  4. S. Park and J. Ousterhout, "Exploiting Commutativity For Practical Fast Replication," Proc. 16th USENIX Symposium on Networked Systems Design and Implementation (NSDI 19), February 2019, pp. 47–64.
  5. H. Qin, Q. Li, J. Speiser, P. Kraft, and J. Ousterhout, "Arachne: Core-Aware Thread Management," Proc. 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18), October 2018, pp. 145–160.
  6. B. Montazeri, Y. Li, M. Alizadeh, and J. Ousterhout, "Homa: A Receiver-Driven Low-Latency Transport Protocol Using Network Priorities," Proc. ACM SIGCOMM 2018, August 2018, pp. 221–235. Complete version
  7. S. Yang, S. Park, and J. Ousterhout, "NanoLog: A Nanosecond Scale Logging System," 2018 USENIX Annual Technical Conference (USENIX ATC '18), June 2018, pp. 335–350.
  8. A. Kejriwal, A. Gopalan, A. Gupta, Z. Jia, S. Yang, and J. Ousterhout, "SLIK: Scalable Low-Latency Indexes for a Key-Value Store," 2016 USENIX Annual Technical Conference (USENIX ATC '16), June 2016, pp. 57–70.
  9. C. Lee, S. J. Park, A. Kejriwal, S. Matsushita, and J. Ousterhout, "Implementing Linearizability at Large Scale and Low Latency," Proc. 25th ACM Symposium on Operating Systems Principles, October 2015, pp. 71–86.
  10. R. Stutsman, C. Lee, and J. Ousterhout, "Experience with Rules-Based Programming for Distributed, Concurrent, Fault-Tolerant Code," 2015 USENIX Annual Technical Conference (USENIX ATC '15), July 2015, pp. 17–30.
  11. D. Ongaro and J. Ousterhout, "In Search of an Understandable Consensus Algorithm," 2014 USENIX Annual Technical Conference (USENIX ATC '14), June 2014, pp. 305–319.
  12. S. Rumble, A. Kejriwal, and J. Ousterhout, "Log-Structured Memory for DRAM-based Storage," 12th USENIX Conference on File and Storage Technology (FAST '14), February 2014, pp. 1–16.
  13. A. Cidon, S. Rumble, R. Stutsman, S. Katti, J. Ousterhout, and M. Rosenblum, "Copysets: Reducing the Frequency of Data Loss in Cloud Storage," USENIX Annual Technical Conference, June 2013, pp. 37–48.
  14. D. Ongaro, S. Rumble, R. Stutsman, J. Ousterhout and M. Rosenblum, "Fast Crash Recovery in RAMCloud," Proc. 23rd ACM Symposium on Operating Systems Principles, October 2011, pp. 29–41.
  15. E. Stratmann, J. Ousterhout, and S. Madan, "Integrating Long Polling with an MVC Web Framework," USENIX Conference on Web Application Development, June 2011, pp. 113–124.
  16. J. Ousterhout and E. Stratmann, "Managing State for Ajax-Driven Web Components," USENIX Conference on Web Application Development, June 2010, pp. 73–85.
  17. J. Levy, L. Demailly, J. Ousterhout, and B. Welch, "The Safe-Tcl Security Model," Proc. USENIX Annual Technical Conference, June 1998, pp. 271–282.
  18. K. Shirriff and J. Ousterhout, "Sawmill: A High Bandwidth Logging File System," Proc. USENIX Summer Conference, June 1994, pp. 125–136.
  19. J. Ousterhout, "Hypergraphics and Hypertext in Tk," Proc. 7th Annual X Technical Conference, The X Resource, Issue 5, January 1993, pp. 113–127.
  20. M. Baker, S. Asami, E. Deprit, J. Ousterhout, and M. Seltzer, "Non-Volatile Memory for Fast, Reliable File Systems," Proc. 5th Int. Conf. on Architectural Support for Programming Languages and Operating Systems, October 1992, pp. 10–22.
  21. K. Shirriff and J. Ousterhout, " A Trace-Driven Analysis of Name and Attribute Caching in a Distributed System," Proc. USENIX Winter Conference, January 1992, pp. 315–332.
  22. M. Baker, J. Hartman, M. Kupfer, K. Shirriff, and J. Ousterhout, "Measurements of a Distributed File System," Proc. 13th Symposium on Operating Systems Principles, October, 1991, pp. 198–212. Updated in a letter to the editor of SIGOPS Operating Systems Review, January 1993 (see below).
  23. J. Ousterhout, "An X11 Toolkit Based on the Tcl Language," Proc. USENIX Winter Conference, January 1991, pp. 105–115.
  24. J. Hartman and J. Ousterhout, "Performance Measurements of a Multiprocessor Sprite Kernel," Proc. USENIX Summer Conference, June 1990, pp. 279–288.
  25. J. Ousterhout, "Why Aren't Operating Systems Getting Faster as Fast as Hardware?," Proc. USENIX Summer Conference, June 1990, pp. 247–256.
  26. M. Rosenblum and J. Ousterhout, "The LFS Storage Manager," Proc. USENIX Summer Conference, June 1990, pp. 315–324.
  27. J. Ousterhout, "Tcl: An Embeddable Command Language," Proc. USENIX Winter Conference, January 1990, pp. 133–146.
  28. M. Seltzer, P. Chen, and J. Ousterhout, "Disk Scheduling Revisited," Proc. USENIX Winter Conference, January 1990, pp. 313–324.
  29. M. Stonebraker, R. Katz, D. Patterson, and J. Ousterhout, "The Design of XPRS," Proc. 14th Intl. Conference on Very Large Data Bases, F. Bancilhon and D.J. DeWitt, eds., San Francisco, CA, Morgan Kaufmann Publishers, 1988, pp. 318–330.
  30. M. Nelson, and J. Ousterhout, "Copy-on-Write for Sprite," Proc. USENIX Summer Conference, June 1988, pp. 187–202.
  31. B. Welch, and J. Ousterhout, "Pseudo-Devices: User-Level Extensions to the Sprite File System," Proc. USENIX Summer Conference, June 1988, pp. 37–50.
  32. F. Douglis, and J. Ousterhout, "Process Migration in the Sprite Operating System," Proc. 7th Intl. Conference on Distributed Computing Systems, September 1987, pp. 18–25.
  33. B. Welch and J. Ousterhout, "Prefix Tables: A Simple Mechanism for Locating Files in a Distributed System," Proc. 6th Intl. Conference on Distributed Computing Systems, May 1986, pp. 184–189.
  34. J. Ousterhout, H. Da Costa, D. Harrison, J. Kunze, M. Kupfer, and J. Thompson, "A Trace-Driven Analysis of the UNIX 4.2 BSD File System," Proc. 10th ACM Symposium on Operating Systems Principles, December 1985, pp. 15–24.
  35. G. Hamachi, and J. Ousterhout, "Magic's Obstacle-Avoiding Global Router," Proc. 1985 Chapel Hill Conference on VLSI, H. Fuchs, ed., Computer Science Press, 1985, pp. 145–164.
  36. J. Ousterhout, "Switch-Level Delay Models for Digital MOS VLSI," Proc. 21st Design Automation Conference, June 1984, pp. 542–548.
  37. J. Ousterhout, G. Hamachi, R. Mayo, W. Scott, and G. Taylor, "Magic: A VLSI Layout System," Proc. 21st Design Automation Conference, June 1984, pp. 152–159.
  38. G. Taylor, and J. Ousterhout, " Magic's Incremental Design-Rule Checker," Proc. 21st Design Automation Conference, June 1984, pp. 160–165.
  39. W. Scott, and J. Ousterhout, "Plowing: Interactive Stretching and Compaction in Magic," Proc. 21st Design Automation Conference, June 1984, pp. 166–172.
  40. G. Hamachi, and J. Ousterhout, "A Switchbox Router with Obstacle Avoidance," Proc. 21st Design Automation Conference, June 1984, pp. 173–179.
  41. R. Mayo, and J. Ousterhout, "Pictures with Parentheses: Combining Graphics and Procedures in a VLSI Layout Tool," Proc. 20th Design Automation Conference, June 1983, pp. 270–276.
  42. J. Ousterhout, "Crystal: A Timing Analyzer for nMOS VLSI Circuits," Proc. 3rd Caltech Conference on VLSI, March 1983.
  43. J. Ousterhout, "Scheduling Techniques for Concurrent Systems," Proc. 3rd International Conference on Distributed Computing Systems, October 1982, pp. 22–30.
  44. M. Arnold, and J. Ousterhout, "Lyra: A New Approach to Geometric Layout Rule Checking," Proc. 19th Design Automation Conference, June 1982, pp. 530–536.
  45. J. Ousterhout and D. Ungar, "Measurements of a VLSI Design," Proc. 19th Design Automation Conference, June 1982, pp. 903–908.
  46. R. Swan, A. Bechtolsheim, J. Ousterhout, and K. Lai, "The Implementation of the Cm* Multi-microprocessor," NCC Conference Proceedings, pages 645–655, AFIPS Press, 1977.

Technical Reports and Other Publications

  1. J. Ousterhout, "It's Time to Replace TCP in the Datacenter," Archiv 2210.00714.
  2. J. Ousterhout, "The Volatile Future of Storage," IEEE Spectrum, November 2015, pp. 34–39.
  3. R. Stutsman and J. Ousterhout, "Toward Common Patterns for Distributed, Concurrent, Fault-Tolerant Code," 14th Workshop on Hot Topics in Operating Systems, May 2013.
  4. J. Ousterhout, "Is Scale Your Enemy, Or Is Scale Your Friend?," Technical Perspective, Communications of the ACM, Vol. 54, No. 7, July 2011, p. 110.
  5. S. Rumble, D. Ongaro, R. Stutsman, M. Rosenblum, and J. Ousterhout, "It's Time for Low Latency," 13th Workshop on Hot Topics in Operating Systems, May 2011.
  6. J. Ousterhout, P. Agrawal, Erickson, C. Kozyrakis, J. Leverich, D. Mazières, S. Mitra, A. Narayanan, G. Parulkar, M. Rosenblum, S. Rumble, E. Stratmann, and R. Stutsman, "The Case for RAMClouds: Scalable High-Performance Storage Entirely in DRAM," SIGOPS Operating Systems Review, Vol. 43, No. 4, December 2009, pp. 92–105.
  7. J. Ousterhout, "Fiz: A Component Framework for Web Applications," Stanford Computer Science Department Technical Report, January 2009.
  8. E. Melski, S. Stanton, and J. Ousterhout, "Scriptics Connect: An XML Integration Server Based on Tcl," 7th USENIX Tcl/Tk Conference, February 2000.
  9. J. Ousterhout, "The State of Tcl," Performance Computing, August 1999, pp. 43–47.
  10. J. Ousterhout, "Extensibility in Tcl," Dr. Dobbs Journal, June 1999, pp. 64–72.
  11. J. Ousterhout, "Free Software Needs Profit," Communications of the ACM, Vol. 42, No. 4, April 1999, pp. 44–45.
  12. J. Ousterhout, "Integration Platforms: The Missing Link in Enterprise Computing," Web Techniques, Vol. 4, No. 5, May 1999, pp. 73–76.
  13. J. Ousterhout, "What's New With Tcl?," Unix Review, Vol. 15, No. 11, October 1997, pp. 43–45.
  14. J. Ousterhout, "Why Threads Are A Bad Idea (for most purposes)," Invited Talk, USENIX 1996 Technical Conference, June 1996.
  15. J. Ousterhout and L. Rowe, "Hypertools: A GUI Revlolution," The X Journal, Vol. 2, No. 4, March-April 1993, pp. 74–81.
  16. J. Hartman and J. Ousterhout, Letter to the Editor, ACM SIGOPS Operating Systems Review,, Vol. 27, No. 1, January 1993, pages 7–10.
  17. R. Katz, T. Anderson, J. Ousterhout, and D. Patterson, Robo-line Storage: Low Latency, High Capacity Storage Systems Over Geographically Distributed Networks, technical report UCB/CSD 91/651, Computer Science Division (EECS) University of California at Berkeley, September 1991.
  18. J. Ousterhout, "The Role of Distributed State," CMU Computer Science: A 25th Anniversary Perspective, R. Rashid ed., ACM Press, 1991, pp. 199–217.
  19. M. Baker and J. Ousterhout, "Availability in the Sprite Distributed File System," Proc. 4th ACM SIGOPS European Workshop - Fault Tolerance Support in Distributed Systems, Bologna, Italy, September 1990. Reprinted in Operating Systems Review, Vol. 25, No. 2, pp. 95–98.
  20. F. Douglis and J. Ousterhout, Transparent Process Migration for Personal Workstations, technical report UCB/CSD 89/540, Computer Science Division (EECS) University of California at Berkeley, November 1989.
  21. J. Ousterhout, Sprite Engineering Manual, technical report UCB/CSD 89/512, Computer Science Division (EECS) University of California at Berkeley, May 1989.
  22. F. Douglis and J. Ousterhout, "Process Migration in Sprite: A Status Report," Operating Systems Technical Committee Newsletter, IEEE Computer Society, Vol. 3, No. 1, Winter 1989, pp. 8–10.
  23. J. Ousterhout and F. Douglis, "Beating the I/O Bottleneck: A Case for Log-Structured File Systems," Operating Systems Review, Vol. 23, No. 1, January 1989, pp. 11–28.
  24. J. Ousterhout, A. Cherenson, F. Douglis, M. Nelson, and B. Welch, "An Overview of the Sprite Project," ;login: The USENIX Association Newsletter, Vol. 12, No. 1, January/February 1987, pp. 13–17.
  25. W. Scott, R. Mayo, G. Hamachi, and J. Ousterhout, eds., 1986 VLSI Tools, technical report UCB/CSD 86/272, Computer Science Division (EECS) University of California at Berkeley, December 1985.
  26. W. Scott, G. Hamachi, J. Ousterhout, and R. Mayo, eds., 1985 VLSI Tools, technical report UCB/CSD 85/225, Computer Science Division (EECS) at University of California, Berkeley, 1985.
  27. J. Ousterhout, "VLSI Tools and Architectures: Putting the New Technology to Work," invited paper, Proceedings of the ACM Computer Science Conference, 1983, pp. 25–30.
  28. J. Ousterhout, G. Hamachi, R. Mayo, W. Scott, and G. Taylor, "The Magic VLSI Layout System," IEEE Design and Test, Vol. 2, No. 1, February, 1985, pp. 19–30.
  29. R. Mayo, J. Ousterhout, and W. Scott, eds., 1983 VLSI Tools, technical report UCB/CSD 83/115, Computer Science Division (EECS), University of California at Berkeley, 1983.
  30. J. Ousterhout, "Caesar: An Interactive Editor for VLSI Layouts," VLSI Design, Vol. 2, No. 4, Fourth Quarter 1981.
  31. J. Ousterhout, Partitioning and Cooperation in a Distributed Multiprocessor Operating System: Medusa, Ph.D. dissertation, Computer Science Department, Carnegie Mellon University, April 1980, available as technical report CMU-CS-80-112.
  32. J. Ousterhout, Cm* Kmap Microprogramming Manual and Debugger Manual, technical report, Computer Science Department, Carnegie Mellon University, August, 1978.
  33. J. Ousterhout, "Kmap Microprograms," Cm* Review, S. Fuller, A. Jones, and I. Durham, eds., technical report, Computer Science Department, Carnegie Mellon University, June, 1977.