High-Performance Transactional Event Processing

  • Antonio Cunei
  • Rachid Guerraoui
  • Jesper Honig Spring
  • Jean Privat
  • Jan Vitek
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5521)

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)CrossRefGoogle Scholar
  2. 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)CrossRefGoogle Scholar
  3. 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. 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)CrossRefGoogle Scholar
  5. 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)CrossRefGoogle Scholar
  6. 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. 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. 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. 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. 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. 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. 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. 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. 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)CrossRefGoogle Scholar
  15. 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)CrossRefGoogle Scholar
  16. 16.
    Freeman, E., Hüpfer, S., Arnold, K.: JavaSpaces Principles, Patterns, and Practice. Addison-Wesley, Reading (1999)Google Scholar
  17. 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)CrossRefGoogle Scholar
  18. 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. 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. 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. 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)CrossRefGoogle Scholar
  22. 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. 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. 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. 25.
  26. 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. 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. 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. 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. 30.
    Vitek, J., Bryce, C., Oriol, M.: Coordinating processes with secure spaces. Science of Computer Programming 46(1-2), 163–193 (2003)CrossRefMATHGoogle Scholar
  31. 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)MathSciNetCrossRefMATHGoogle Scholar
  32. 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

Copyright information

© IFIP International Federation for Information Processing 2009

Authors and Affiliations

  • Antonio Cunei
    • 1
  • Rachid Guerraoui
    • 1
  • Jesper Honig Spring
    • 1
  • Jean Privat
    • 2
  • Jan Vitek
    • 3
  1. 1.Ecole Polytechnique Fédérale de Lausanne (EPFL)Switzerland
  2. 2.Université du Québec à Montréal (UQÀM)Canada
  3. 3.Purdue UniversityUSA

Personalised recommendations