Scalable Efficient Composite Event Detection

  • K. R. Jayaram
  • Patrick Eugster
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6116)


Composite event detection (CED) is the task of identifying combinations of events which are meaningful with respect to program-defined patterns. Recent research in event-based programming has focused on language design (in different paradigms), leading to a wealth of prototype programming models and languages. However, implementing CED in an efficient and scalable manner remains an under-addressed problem. In fact, the lack of scalable algorithms is the main roadblock to incorporating support for more expressive event patterns into prominent event-based programming languages. This lack of scalable algorithms is a particularly acute problem in event stream processing, where event patterns can additionally be specified over time windows. In this paper we describe GenTrie, a deterministic trie-based algorithm for CED. We describe how complex event patterns are split, how each sub-pattern maps to a node in the trie, and demonstrate through empirical evaluation that GenTrie has higher throughput than current implementations of related languages.


Composite Event Event Pattern Disjunctive Normal Form Event Match Scalable Algorithm 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Benton, N., Cardelli, L., Fournet, C.: Modern Concurrency Abstractions for C#. ACM TOPLAS 26(5), 769–804 (2004)CrossRefGoogle Scholar
  2. 2.
    Eugster, P., Jayaram, K.R.: EventJava: An Extension of Java for Event Correlation. In: Drossopoulou, S. (ed.) ECOOP 2009. LNCS, vol. 5653, pp. 570–594. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  3. 3.
    Haller, P., Van Cutsem, T.: Implementing Joins using Extensible Pattern Matching. In: Lea, D., Zavattaro, G. (eds.) COORDINATION 2008. LNCS, vol. 5052, pp. 135–152. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  4. 4.
    Haller, P., Odersky, M.: Scala Actors: Unifying Thread-based and Event-based Programming. Theoretical Computer Science 410(2-3), 202–220Google Scholar
  5. 5.
    Von Itzstein, S.G., Kearney, D.A.: The Expression of Common Concurrency Patterns in Join Java. In: PDPTA 2004, pp. 1021–1025 (2004)Google Scholar
  6. 6.
    Petrounias, A., Eisenbach, S.: Fairness for Chorded Languages. In: Field, J., Vasconcelos, V.T. (eds.) COORDINATION 2009. LNCS, vol. 5521, pp. 86–105. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  7. 7.
    Reppy, J.H., Xiao, Y.: Specialization of CML Message-passing Primitives. In: POPL 2007, pp. 315–326 (2007)Google Scholar
  8. 8.
    Rajan, H., Leavens, G.T.: Ptolemy: A Language with Quantified, Typed Events. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 155–179. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  9. 9.
    Carzaniga, A., Rutherford, M.J., Wolf, A.L.: Design and Evaluation of a Wide-area Event Notification Service. ACM TOCS 19(3), 332–383 (2001)CrossRefGoogle Scholar
  10. 10.
    Haahr, M., Meier, R., Nixon, P., Cahill, V., Jul, E.: Filtering and Scalability in the ECO Distributed Event Model. In: PDSE 2000, pp. 83–92 (2000)Google Scholar
  11. 11.
    Eugster, P.: Type-based Publish/Subscribe: Concepts and Experiences. ACM TOPLAS 29(1) (2007)Google Scholar
  12. 12.
    Van Cutsem, T., Mostinckx, S., Gonzalez Boix, E., Dedecker, J., De Meuter, W.: AmbientTalk: Object-oriented Event-driven Programming in Mobile Ad hoc Networks. In: SCCC 2007 (2007)Google Scholar
  13. 13.
    Sulzmann, M., Lam, E.S.L., Van Weert, P.: Actors with Multi-headed Message Receive Patterns. In: Lea, D., Zavattaro, G. (eds.) COORDINATION 2008. LNCS, vol. 5052, pp. 315–330. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  14. 14.
    Demers, A.J., Gehrke, J., Hong, M., Riedewald, M., White, W.M.: Towards Expressive Publish/Subscribe Systems. In: Ioannidis, Y., Scholl, M.H., Schmidt, J.W., Matthes, F., Hatzopoulos, M., Böhm, K., Kemper, A., Grust, T., Böhm, C. (eds.) EDBT 2006. LNCS, vol. 3896, pp. 627–644. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  15. 15.
    Balazinska, M., Balakrishnan, H., Madden, S., Stonebraker, M.: Fault-tolerance in the Borealis Distributed Stream Processing System. In: SIGMOD 2005, pp. 13–24 (2005)Google Scholar
  16. 16.
  17. 17.
    Russo, C.V.: Join Patterns for Visual Basic. In: OOPSLA 2008, pp. 53–72 (2008)Google Scholar
  18. 18.
    Fournet, C., Gonthier, C.: The Reflexive Chemical Abstract Machine and the Join Calculus. In: POPL 1996, pp. 372–385 (1996)Google Scholar
  19. 19.
    Li, G., Jacobsen, H.A.: Composite Subscriptions in Content-Based Publish/Subscribe Systems. In: Alonso, G. (ed.) Middleware 2005. LNCS, vol. 3790, pp. 249–269. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  20. 20.
    Forgy, C.: Rete: a Fast Algorithm for the Many Patterns/Many Objects Match Problem. Artificial Intelligence 19(1), 17–37 (1982)CrossRefGoogle Scholar
  21. 21.
    Friedman-Hill, E.: Jess (2008),
  22. 22.
    Cormen, T.H., Rivest, R.L., Leiserson, C., Stein, C.H.: Introduction to Algorithms. MIT Press, Cambridge (2009)zbMATHGoogle Scholar
  23. 23.
    Trono, J.A.: A New Exercise in Concurrency. SIGCSE Bulletin 26(3), 8–10 (1994)CrossRefGoogle Scholar
  24. 24.
    Benton, N.: Jingle Bells: Solving the Santa Claus Problem in Polyphonic C# (2003),
  25. 25.
    Vhayu: Vhayu Velocity – Algorithmic Trading Case Study (2008),

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • K. R. Jayaram
    • 1
  • Patrick Eugster
    • 1
  1. 1.Department of Computer SciencePurdue University 

Personalised recommendations