Skip to main content

High-Performance Transactional Event Processing

  • Conference paper
Book cover Coordination Models and Languages (COORDINATION 2009)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5521))

Included in the following conference series:

  • 310 Accesses

Abstract

This paper presents a transactional framework for low- latency, high-performance, concurrent event processing in Java. At the heart of our framework lies Reflexes, a restricted programming model for highly responsive systems. A Reflex task is an event processor that can run at a higher priority and preempt any other Java thread, including the garbage collector. It runs in an obstruction-free manner with time-oblivious code. We extend Reflexes with a publish/subscribe communication system, itself based on an optimistic transactional event processing scheme, that provides efficient coordination between time-critical, low-latency tasks.We report on the comparison with a commercial JVM, and show that it is possible for tasks to achieve 50 μs response times with way less than 1% of the executions failing to meet their deadlines.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Andreae, C., Coady, Y., Gibbs, C., Noble, J., Vitek, J., Zhao, T.: Scoped Types and Aspects for Real-Time Java. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 124–147. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  2. Armbuster, A., Baker, J., Cunei, A., Holmes, D., Flack, C., Pizlo, F., Pla, E., Prochazka, M., Vitek, J.: A Real-time Java virtual machine with applications in avionics. ACM Transactions in Embedded Computing Systems (TECS) 7(1), 1–49 (2007)

    Article  Google Scholar 

  3. Auerbach, J., Bacon, D.F., Iercan, D.T., Kirsch, C.M., Rajan, V.T., Roeck, H., Trummer, R.: Java takes flight: time-portable real-time programming with Exotasks. In: Proceedings of the ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES), vol. 42, pp. 51–62. ACM, New York (2007)

    Google Scholar 

  4. Baker, J., Cunei, A., Flack, C., Pizlo, F., Prochazka, M., Vitek, J., Armbruster, A., Pla, E., Holmes, D.: A real-time java virtual machine for avionics - an experience report. In: Proceedings of the 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS), Washington, DC, USA, pp. 384–396. IEEE Computer Society Press, Los Alamitos (2006)

    Chapter  Google Scholar 

  5. Beebee, W.S., Rinard, M.C.: An implementation of scoped memory for real-time java. In: Henzinger, T.A., Kirsch, C.M. (eds.) EMSOFT 2001. LNCS, vol. 2211, pp. 289–305. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  6. Benowitz, E.G., Niessner, A.: A patterns catalog for RTSJ software designs. In: Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES), OTM Workshops, pp. 497–507 (2003)

    Google Scholar 

  7. Benowitz, E.G., Niessner, A.F.: Experiences in adopting real-time java for flight-like software. In: Proceedings of the International workshop on Java Technologies for Real-Time and Embedded Systems (JTRES), pp. 490–496 (2003)

    Google Scholar 

  8. Bollella, G., Canham, T., Carson, V., Champlin, V., Dvorak, D., Giovannoni, B., Indictor, M., Meyer, K., Murray, A., Reinholtz, K.: Programming with non-heap memory in the Real-time specification for Java. In: Companion of the 18th annual ACM SIGPLAN conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 361–369 (2003)

    Google Scholar 

  9. Bollella, G., Gosling, J., Brosgol, B., Dibble, P., Furr, S., Turnbull, M.: The Real-Time Specification for Java. Addison-Wesley, Reading (2000)

    Google Scholar 

  10. Boyapati, C., Lee, R., Rinard, M.: Ownership types for safe programming: Preventing data races and deadlocks. In: Proceedings of the 17th Annual ACM SIGPLAN Conference on Object-Oriented Programming (OOPSLA) (November 2002)

    Google Scholar 

  11. Boyapati, C., Salcianu, A., Beebee Jr., W., Rinard, M.: Ownership types for safe region-based memory management in Real-Time Java. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). ACM Press, New York (2003)

    Google Scholar 

  12. Clarke, D.G., Potter, J.M., Noble, J.: Ownership types for flexible alias protection. In: Proceedings of the 13th Annual ACM SIGPLAN Conference on Object-Oriented Programming (OOPSLA), October 1998. ACM SIGPLAN Notices, vol. 33(10), pp. 48–64. ACM, New York (1998)

    Google Scholar 

  13. Corsaro, A., Cytron, R.: Efficient memory reference checks for Real-time Java. In: Proceedings of Languages, Compilers, and Tools for Embedded Systems, LCTES (2003)

    Google Scholar 

  14. Cugola, G., Di Nitto, E., Fuggetta, A.: The JEDI event-based infrastructure and its application to the development of the OPSS WFMS. IEEE Transactions Software Engineering 27(9), 827–850 (2001)

    Article  Google Scholar 

  15. Eugster, P.T., Felber, P., Guerraoui, R., Kermarrec, A.-M.: The many faces of publish/subscribe. ACM Comput. Surv. 35(2), 114–131 (2003)

    Article  Google Scholar 

  16. Freeman, E., Hüpfer, S., Arnold, K.: JavaSpaces Principles, Patterns, and Practice. Addison-Wesley, Reading (1999)

    Google Scholar 

  17. Jagannathan, S., Vitek, J.: Optimistic concurrency semantics for transactions in coordination languages. In: De Nicola, R., Ferrari, G.-L., Meredith, G. (eds.) COORDINATION 2004. LNCS, vol. 2949, pp. 183–198. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  18. Manson, J., Baker, J., Cunei, A., Jagannathan, S., Prochazka, M., Xin, B., Vitek, J.: Preemptible atomic regions for real-time Java. In: Proceedings of the 26th IEEE Real-Time Systems Symposium (RTSS) (December 2005)

    Google Scholar 

  19. Ni, Y., Menon, V.S., Adl-Tabatabai, A.-R., Hosking, A.L., Hudson, R.L., Moss, J., Saha, B., Shpeisman, T.: Open nesting in software transactional memory. In: Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP), pp. 68–78 (2007)

    Google Scholar 

  20. Niessner, A.F., Benowitz, E.G.: Rtsj memory areas and their affects on the performance of a flight-like attitude control system. In: Proceedings of the International Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES), pp. 508–519 (2003)

    Google Scholar 

  21. Palacz, K., Vitek, J.: Java subtype tests in real-time. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 378–404. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  22. Pizlo, F., Fox, J., Holmes, D., Vitek, J.: Real-time Java scoped memory: design patterns and semantics. In: Proceedings of the IEEE International Symposium on Object-oriented Real-Time Distributed Computing (ISORC), Vienna, Austria (May 2004)

    Google Scholar 

  23. Pizlo, F., Hosking, A., Vitek, J.: Hiearchical real-time garbage collection. In: Proceeedings of ACM SIGPLAN/SIGBED 2007 Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES), pp. 123–133 (2007)

    Google Scholar 

  24. Pizlo, F., Vitek, J.: An empirical evalutation of memory management alternatives for Real-time Java. In: Proceedings of the 27th IEEE Real-Time Systems Symposium (RTSS) (December 2006)

    Google Scholar 

  25. H. Resolution Timers, www.tglx.de/projects/hrtimers/2.6.17/

  26. Spoonhower, D., Auerbach, J., Bacon, D.F., Cheng, P., Grove, D.: Eventrons: a safe programming construct for high-frequency hard real-time applications. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), vol. 41, pp. 283–294. ACM, New York (2006)

    Google Scholar 

  27. Spring, J., Pizlo, F., Guerraoui, R., Vitek, J.: Reflexes: Abstractions for highly responsive systems. In: Proceedings of the 3rd International ACM SIGPLAN/SIGOPS Conference on Virtual Execution Environments, VEE (2007)

    Google Scholar 

  28. Spring, J., Privat, J., Guerraoui, R., Vitek, J.: StreamFlex: High-throughput stream programming in Java. In: Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, OOPSLA (2007)

    Google Scholar 

  29. Strom, R.E., Banavar, G., Chandra, T.D., Kaplan, M., Miller, K., Mukherjee, B., Sturman, D.C., Ward, M.: Gryphon: An information flow based approach to message brokering. CoRR: Distributed, Parallel, and Cluster Computing, cs.DC/9810019 (1998)

    Google Scholar 

  30. Vitek, J., Bryce, C., Oriol, M.: Coordinating processes with secure spaces. Science of Computer Programming 46(1-2), 163–193 (2003)

    Article  MATH  Google Scholar 

  31. Zhao, T., Baker, J., Hunt, J., Noble, J., Vitek, J.: Implicit ownership types for memory management. Science of Computer Programming 71(3), 213–241 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  32. Zhao, T., Noble, J., Vitek, J.: Scoped types for real-time Java. In: Proceedings of the 25th IEEE International Real-Time Systems Symposium, RTSS (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 IFIP International Federation for Information Processing

About this paper

Cite this paper

Cunei, A., Guerraoui, R., Spring, J.H., Privat, J., Vitek, J. (2009). High-Performance Transactional Event Processing. In: Field, J., Vasconcelos, V.T. (eds) Coordination Models and Languages. COORDINATION 2009. Lecture Notes in Computer Science, vol 5521. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02053-7_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-02053-7_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-02052-0

  • Online ISBN: 978-3-642-02053-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics