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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
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)
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)
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)
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)
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)
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)
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)
Bollella, G., Gosling, J., Brosgol, B., Dibble, P., Furr, S., Turnbull, M.: The Real-Time Specification for Java. Addison-Wesley, Reading (2000)
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)
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)
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)
Corsaro, A., Cytron, R.: Efficient memory reference checks for Real-time Java. In: Proceedings of Languages, Compilers, and Tools for Embedded Systems, LCTES (2003)
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)
Eugster, P.T., Felber, P., Guerraoui, R., Kermarrec, A.-M.: The many faces of publish/subscribe. ACM Comput. Surv. 35(2), 114–131 (2003)
Freeman, E., Hüpfer, S., Arnold, K.: JavaSpaces Principles, Patterns, and Practice. Addison-Wesley, Reading (1999)
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)
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)
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)
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)
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)
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)
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)
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)
H. Resolution Timers, www.tglx.de/projects/hrtimers/2.6.17/
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)
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)
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)
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)
Vitek, J., Bryce, C., Oriol, M.: Coordinating processes with secure spaces. Science of Computer Programming 46(1-2), 163–193 (2003)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)