[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.5555/1364385.1364392guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Events can make sense

Published: 17 June 2007 Publication History

Abstract

Tame is a new event-based system for managing concurrency in network applications. Code written with Tame abstractions does not suffer from the "stack-ripping" problem associated with other event libraries. Like threaded code, tamed code uses standard control flow, automatically-managed local variables, and modular interfaces between callers and callees. Tame's implementation consists of C++ libraries and a source-to-source translator; no platform-specific support or compiler modifications are required, and Tame induces little runtime overhead. Experience with Tame in real-world systems, including a popular commercial Web site, suggests it is easy to adopt and deploy.

References

[1]
{1} A. Adya, J. Howell, M. Theimer, W. J. Bolosky, and J. R. Douceur. Cooperative task management without manual stack management. In Proc. 2002 USENIX Annual Tech. Conference, June 2002.
[2]
{2} A. Birkett. Parsing C++. http://www.nobugs.org/developer/parsingcpp.
[3]
{3} T. Brecht, D. Pariag, and L. Gammo. accept()able strategies for improving Web server performance. In Proc. 2004 USENIX Annual Tech. Conference, June 2004.
[4]
{4} B. Callaghan, B. Pawlowski, and P. Staubach. NFS version 3 protocol specification. RFC 1813, Network Working Group, June 1995.
[5]
{5} K. Claessen. A poor man's concurrency monad. Journal of Functional Programming, 9(3), May 1999.
[6]
{6} R. Cunningham and E. Kohler. Making events less slippery with eel. In Proc. HotOS-X, June 2005.
[7]
{7} F. Dabek, M. F. Kaashoek, D. Karger, R. Morris, and I. Stoica. Wide-area cooperative storage with CFS. In Proc. 18th SOSP, October 2001.
[8]
{8} G. L. Davies. Teaching concurrent programming with Pascal-FC. SIGCSE Bulletin, 22(2), 1990.
[9]
{9} U. Drepper. The native POSIX thread library for Linux. http://people.redhat.com/drepper/nptl-design.pdf.
[10]
{10} T. Duff. Duff's device. http://www.lysator.liu.se/c/duffs-device.html.
[11]
{11} A. Dunkels, O. Schmidt, T. Voigt, and M. Ali. Protothreads: Simplifying event-driven programming of memory-constrained embedded systems. In Proc. 2006 SenSys, Nov. 2006.
[12]
{12} R. S. Engelschall. Portable multithreading: The signal stack trick for user-space thread creation. In Proc. 2000 USENIX Annual Tech. Conference, June 2000.
[13]
{13} M. J. Freedman, E. Freudenthal, and D. Mazières. Democratizing content publication with Coral. In Proc. 1st NSDI, March 2004.
[14]
{14} C. A. R. Hoare. Monitors: an operating system structuring concept. Communications of the ACM, 17(10), 1974.
[15]
{15} P. Hudak et al. Report on the programming language Haskell: a non-strict, purely functional language version 1.2. SIGPLAN Not., 27(5), 1992.
[16]
{16} Humor Rainbow, Inc. OkCupid.com. http://www.okcupid.com.
[17]
{17} G. Jones. Programming in Occam. Prentice Hall International (UK) Ltd., 1986.
[18]
{18} M. Krohn. Building secure high-performance web services with OKWS. In Proc. 2004 USENIX Annual Tech. Conference, June 2004.
[19]
{19} J. Lemon. Kqueue: A generic and scalable event notification facility. In Proc. 2001 FREENIX, 2001.
[20]
{20} P. Li and S. Zdancewic. Combining events and threads for scalable network services. In Proc. 2007 PLDI, Jun 2007.
[21]
{21} D. Mazières. A toolkit for user-level file systems. In Proc. 2001 USENIX Annual Tech. Conference, June 2001.
[22]
{22} Microsoft. Inside I/O completion ports. http://www.microsoft.com/technet/sysinternals/ information/IoCompletionPorts.mspx.
[23]
{23} MySQL AB. MySQL. http://www.mysql.com.
[24]
{24} V. S. Pai, P. Druschel, and W. Zwaenepoel. Flash: An efficient and portable Web server. In Proc. 1999 USENIX Annual Tech. Conference, June 1999.
[25]
{25} D. Pariag, T. Brecht, A. Harji, P. Buhr, and A. Shukla. Comparing the performance of web server architectures. In Proc. 2007 EuroSys, March 2007.
[26]
{26} K. Park and V. S. Pai. Connection conditioning: Architecture-independent support for simple, robust servers. In Proc. 2006 NSDI, May 2006.
[27]
{27} N. Provos. libevent--an event notification library. http://www.monkey.org/~provos/libevent.
[28]
{28} N. Provos. A virtual honeypot framework. In Proc. 13th USENIX Security Symposium, Aug 2004.
[29]
{29} B. Ramkumar and V. Strumpen. Portable checkpointing for heterogeneous architectures. In Proc. 27th International Symposium on Fault-Tolerant Computing, June 1997.
[30]
{30} J. H. Reppy. CML: A higher concurrent language. In Proc. 1991 PLDI, June 1991.
[31]
{31} Silicon Graphics, Inc. State threads for Internet applications. http://state-threads.sourceforge.net/docs/st.html.
[32]
{32} D. B. Skillicorn and D. Talia. Models and languages for parallel computation. ACM Computing Surveys, 30(2), 1998.
[33]
{33} G. Steele. Common Lisp. Digital Press, Jun 1984.
[34]
{34} J. Stribling, J. Li, I. G. Councill, M. F. Kaashoek, and R. Morris. OverCite: A distributed, cooperative CiteSeer. In Proc. 2006 NSDI, May 2006.
[35]
{35} C. Thekkath, T. Mann, and E. K. Lee. Frangipani: A scalable distributed file system. In Proc. 16th SOSP, October 1997.
[36]
{36} N. Tolia, M. Kaminsky, D. G. Andersen, and S. Patil. An architecture for Internet data transfer. In Proc. 2006 NSDI, May 2006.
[37]
{37} R. von Behren, J. Condit, and E. Brewer. Why events are a bad idea (for high-concurrency servers). In Proc. HotOS-IX, May 2003.
[38]
{38} R. von Behren, J. Condit, F. Zhou, G. C. Necula, and E. Brewer. Capriccio: scalable threads for Internet services. In Proc. 19th SOSP, October 2003.
[39]
{39} M. Walfish, M. Vutukuru, H. Balakrishnan, D. Karger, and S. Shenker. DDoS Defense by Offense. In Proc. 2006 NSDI, May 2006.
[40]
{40} M. Welsh, D. Culler, and E. Brewer. SEDA: An architecture for well-conditioned, scalable Internet services. In Proc. 18th SOSP, October 2001.
[41]
{41} N. Zeldovich et al. Multiprocessor support for event-driven programs. In Proc. 2003 USENIX Annual Tech. Conference, June 2003.

Cited By

View all
  • (2019)LXDsProceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference10.5555/3358807.3358831(269-284)Online publication date: 10-Jul-2019
  • (2019)Reaping the performance of fast NVM storage with udepotProceedings of the 17th USENIX Conference on File and Storage Technologies10.5555/3323298.3323300(1-15)Online publication date: 25-Feb-2019
  • (2019)Mitigating Tail Response Time of n-Tier ApplicationsACM Transactions on Internet Technology10.1145/334046219:3(1-25)Online publication date: 25-Jul-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Guide Proceedings
ATC'07: 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference
June 2007
31 pages
ISBN:9998888776

Publisher

USENIX Association

United States

Publication History

Published: 17 June 2007

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 11 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2019)LXDsProceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference10.5555/3358807.3358831(269-284)Online publication date: 10-Jul-2019
  • (2019)Reaping the performance of fast NVM storage with udepotProceedings of the 17th USENIX Conference on File and Storage Technologies10.5555/3323298.3323300(1-15)Online publication date: 25-Feb-2019
  • (2019)Mitigating Tail Response Time of n-Tier ApplicationsACM Transactions on Internet Technology10.1145/334046219:3(1-25)Online publication date: 25-Jul-2019
  • (2019)Optimizing N-Tier Application Scalability in the CloudACM Transactions on Modeling and Performance Evaluation of Computing Systems10.1145/33261204:2(1-27)Online publication date: 13-Jun-2019
  • (2018)AutoPA: automatically generating active driver from original passive driver codeProceedings of the 2018 International Symposium on Code Generation and Optimization10.1145/3168809(288-299)Online publication date: 24-Feb-2018
  • (2016)GPUnetACM Transactions on Computer Systems10.1145/296309834:3(1-31)Online publication date: 17-Sep-2016
  • (2016)A type-and-effect system for asynchronous, typed eventsProceedings of the 15th International Conference on Modularity10.1145/2889443.2889446(42-53)Online publication date: 14-Mar-2016
  • (2016)Lightweight Capability DomainsACM SIGOPS Operating Systems Review10.1145/2883591.288360149:2(44-50)Online publication date: 20-Jan-2016
  • (2015)Lightweight capability domainsProceedings of the 8th Workshop on Programming Languages and Operating Systems10.1145/2818302.2818307(8-14)Online publication date: 4-Oct-2015
  • (2015)GatlingACM Transactions on Information and System Security10.1145/271456517:4(1-34)Online publication date: 24-Apr-2015
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media