skip to main content
research-article

Scalable i/o event handling for GHC

Published:30 September 2010Publication History
Skip Abstract Section

Abstract

We have developed a new, portable I/O event manager for the Glasgow Haskell Compiler (GHC) that scales to the needs of modern server applications. Our new code is transparently available to existing Haskell applications. Performance at lower concurrency levels is comparable with the existing implementation. We support millions of concurrent network connections, with millions of active timeouts, from a single multithreaded program, levels far beyond those achievable with the current I/O manager. In addition, we provide a public API to developers who need to create event-driven network applications.

Skip Supplemental Material Section

Supplemental Material

haskell-1445-osullivan.mov

References

  1. }}P. Haller and M. Odersky. Actors that unify threads and events. In Proceedings of the International Conference on Coordination Models and Languages, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. }}T. Harris, S. Marlow, and S. Peyton Jones. Haskell on a shared-memory multiprocessor. In Haskell '05: Proceedings of the 2005 ACM SIGPLAN workshop on Haskell, pages 49--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. }}T. Harris, S. Marlow, S. Peyton Jones, and M. Herlihy. Composable memory transactions. In PPoPP '05: Proceedings of the tenth ACM SIGPLAN symposium on Principles and Practice of Parallel Programming, pages 48--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. }}R. Hinze. A simple implementation technique for priority search queues. In Proceedings of the 2001 International Conference on Functional Programming, pages 110--121. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. }}D. Jones Jr., S. Marlow, and S. Singh. Parallel performance tuning for Haskell. In Proceedings of the 2009 Haskell Symposium. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. }}S. Marlow, S. Peyton Jones, and W. Thaller. Extending the Haskell foreign function interface with concurrency. In Haskell '04: Proceedings of the ACM SIGPLAN workshop on Haskell, pages 57--68. URL http://www.haskell.org/~simonmar/papers/conc-ffi.pdf. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. }}C. Okasaki and A. Gill. Fast mergeable integer maps. In Workshop on ML, pages 77--86, 1998.Google ScholarGoogle Scholar
  8. }}B. O'Sullivan. Criterion, a new benchmarking library for Haskell. http://bit.ly/rUuAa, 2009.Google ScholarGoogle Scholar
  9. }}L. Peng and S. Zdancewic. Combining events and threads for scalable network services. In PLDI '07: Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 189--199. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. }}S. Peyton Jones, A. Gordon, and S. Finne. Concurrent Haskell. In POPL '96: Proceedings of the 1996 Annual Symposium on Principles of Programming Languages, pages 295--308. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. }}R. von Behren, J. Condit, and E. Brewer. Why events are a bad idea (for high-concurrency servers). In HotOS IX: 9th Workshop on Hot Topics in Operating Systems, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Scalable i/o event handling for GHC

              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 SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 45, Issue 11
                HASKELL '10
                November 2010
                156 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/2088456
                Issue’s Table of Contents
                • cover image ACM Conferences
                  Haskell '10: Proceedings of the third ACM Haskell symposium on Haskell
                  September 2010
                  166 pages
                  ISBN:9781450302524
                  DOI:10.1145/1863523

                Copyright © 2010 ACM

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 30 September 2010

                Check for updates

                Qualifiers

                • research-article

              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!