skip to main content
research-article
Open Access
Artifacts Evaluated & Functional / v1.1

StreamQL: a query language for processing streaming time series

Published:13 November 2020Publication History
Skip Abstract Section

Abstract

Real-time data analysis applications increasingly rely on complex streaming computations over time-series data. We propose StreamQL, a language that facilitates the high-level specification of complex analyses over streaming time series. StreamQL is designed as an algebra of stream transformations and provides a collection of combinators for composing them. It integrates three language-based approaches for data stream processing: relational queries, dataflow composition, and temporal formalisms. The relational constructs are useful for specifying simple transformations, aggregations, and the partitioning of data into key-based groups or windows. The dataflow abstractions enable the modular description of a computation as a pipeline of stages or, more generally, as a directed graph of independent tasks. Finally, temporal constructs can be used to specify complex temporal patterns and time-varying computations. These constructs can be composed freely to describe complex streaming computations. We provide a formal denotational semantics for StreamQL using a class of monotone functions over streams. We have implemented StreamQL as a lightweight Java library, which we use to experimentally evaluate our approach. The experiments show that the throughput of our implementation is competitive compared to state-of-the-art streaming engines such as RxJava and Reactor.

Skip Supplemental Material Section

Supplemental Material

Auxiliary Presentation Video

This is a presentation video of my talk at OOPSLA 2020 on our paper accepted in the research track. In this paper, we propose StreamQL, a language that facilitates the high-level specification of complex analyses over streaming time series. StreamQL is designed as an algebra of stream transformations and provides a collection of combinators for composing them. It integrates three language-based approaches for data stream processing: relational queries, dataflow composition, and temporal formalisms. We provide a formal denotational semantics for StreamQL using a class of monotone functions over streams. We have implemented StreamQL as a lightweight Java library, which we use to experimentally evaluate our approach. The experiments show that the throughput of our implementation is competitive compared to state-of-the-art streaming engines such as RxJava and Reactor.

References

  1. D. Abadi, D. Carney, U. Çetintemel, M. Cherniack, C. Convey, C. Erwin, E. Galvez, M. Hatoun, A. Maskey, A. Rasin, A. Singer, M. Stonebraker, N. Tatbul, Y. Xing, R. Yan, and S. Zdonik. 2003. Aurora: A Data Stream Management System. In Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data (SIGMOD '03). ACM, New York, NY, USA, 666-666. https://doi.org/10.1145/872757.872855 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Daniel J. Abadi, Yanif Ahmad, Magdalena Balazinska, Ugur Cetintemel, Mitch Cherniack, Jeong-Hyon Hwang, Wolfgang Lindner, Anurag Maskey, Alex Rasin, Esther Ryvkina, Nesime Tatbul, Ying Xing, and Stanley Zdonik. 2005. The Design of the Borealis Stream Processing Engine. In Proceedings of the 2nd Biennial Conference on Innovative Data Systems Research (CIDR '05). 277-289. http://cidrdb.org/cidr2005/papers/P23.pdfGoogle ScholarGoogle Scholar
  3. Houssam Abbas, Rajeev Alur, Konstantinos Mamouras, Rahul Mangharam, and Alena Rodionova. 2018. Real-time Decision Policies with Predictable Performance. Proceedings of the IEEE, Special Issue on Design Automation for Cyber-Physical Systems 106, 9 ( 2018 ), 1593-1615. https://doi.org/10.1109/JPROC. 2018.2853608 Google ScholarGoogle ScholarCross RefCross Ref
  4. Houssam Abbas, Alena Rodionova, Konstantinos Mamouras, Ezio Bartocci, Scott A. Smolka, and Radu Grosu. 2019. Quantitative Regular Expressions for Arrhythmia Detection. IEEE/ACM Transactions on Computational Biology and Bioinformatics 16, 5 ( 2019 ), 1586-1597. https://doi.org/10.1109/TCBB. 2018.2885274 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Jagrati Agrawal, Yanlei Diao, Daniel Gyllstrom, and Neil Immerman. 2008. Eficient Pattern Matching over Event Streams. In Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data (SIGMOD '08). ACM, New York,Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Alain Biem, Eric Bouillet, Hanhua Feng, Anand Ranganathan, Anton Riabov, Olivier Verscheure, Haris Koutsopoulos, and Carlos Moran. 2010. IBM Infosphere Streams for Scalable, Real-time, Intelligent Transportation Services. In Proceedings of the 2010 ACM SIGMOD International Conference on Management of Data (SIGMOD '10). ACM, New York, NY, USA, 1093-1104. https://doi.org/10.1145/1807167.1807291 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Oscar Boykin, Sam Ritchie, Ian O'Connell, and Jimmy Lin. 2014. Summingbird: A Framework for Integrating Batch and Online MapReduce Computations. Proceedings of the VLDB Endowment 7, 13 (Aug. 2014 ), 1441-1451. https: //doi.org/10.14778/2733004.2733016 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Lars Brenna, Alan Demers, Johannes Gehrke, Mingsheng Hong, Joel Ossher, Biswanath Panda, Mirek Riedewald, Mohit Thatte, and Walker White. 2007. Cayuga: A High-Performance Event Processing Engine. In Proceedings of the 2007 ACM SIGMOD International Conference on Management of Data (SIGMOD '07). Association for Computing Machinery, New York, NY, USA, 1100-1102. https://doi.org/10.1145/1247480.1247620 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Paris Carbone, Asterios Katsifodimos, Stephan Ewen, Volker Markl, Seif Haridi, and Kostas Tzoumas. 2015. Apache Flink: Stream and Batch Processing in a Single Engine. Bulletin of the IEEE Computer Society Technical Committee on Data Engineering 36, 4 ( 2015 ), 28-38. http://sites.computer.org/debull/A15dec/p28.pdfGoogle ScholarGoogle Scholar
  10. Paul Caspi, Daniel Pilaud, Nicholas Halbwachs, and John A. Plaice. 1987. LUSTRE: A Declarative Language for Real-time Programming. In Proceedings of the 14th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL '87). ACM, New York, NY, USA, 178-188. https://doi.org/10.1145/41625.41641 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Badrish Chandramouli, Jonathan Goldstein, Mike Barnett, Robert DeLine, Danyel Fisher, John C. Platt, James F. Terwilliger, and John Wernsing. 2014. Trill: A High-performance Incremental Query Processor for Diverse Analytics. Proceedings of the VLDB Endowment 8, 4 ( 2014 ), 401-412. https://doi.org/10.14778/2735496.2735503 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Badrish Chandramouli, Jonathan Goldstein, and Yinan Li. 2018. Impatience Is a Virtue: Revisiting Disorder in HighPerformance Log Analytics. In Proceedings of the IEEE 34th International Conference on Data Engineering (ICDE 2018 ). IEEE, 677-688. https://doi.org/10.1109/ICDE. 2018.00067 Google ScholarGoogle ScholarCross RefCross Ref
  13. Badrish Chandramouli, Jonathan Goldstein, and David Maier. 2010. High-performance Dynamic Pattern Matching over Disordered Streams. Proceedings of the VLDB Endowment 3, 1-2 ( 2010 ), 220-231. https://doi.org/10.14778/1920841.1920873 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Sirish Chandrasekaran, Owen Cooper, Amol Deshpande, Michael J. Franklin, Joseph M. Hellerstein, Wei Hong, Sailesh Krishnamurthy, Sam Madden, Vijayshankar Raman, Fred Reiss, and Mehul Shah. 2003. TelegraphCQ: Continuous Dataflow Processing for an Uncertain World. In Proceedings of the First Biennial Conference on Innovative Data Systems Research (CIDR '03). http://cidrdb.org/cidr2003/program/p24.pdfGoogle ScholarGoogle Scholar
  15. Agnishom Chattopadhyay and Konstantinos Mamouras. 2020. A Verified Online Monitor for Metric Temporal Logic with Quantitative Semantics. In Proceedings of the 20th International Conference on Runtime Verification (RV 2020 ) (Lecture Notes in Computer Science, Vol. 12399 ), Jyotirmoy Deshmukh and Dejan Ničković (Eds.). Springer, Cham, 383-403. https://doi.org/10.1007/978-3-030-60508-7_21 Google ScholarGoogle ScholarCross RefCross Ref
  16. Tyson Condie, Neil Conway, Peter Alvaro, Joseph M. Hellerstein, Khaled Elmeleegy, and Russell Sears. 2010. MapReduce Online. In Proceedings of the 7th USENIX Conference on Networked Systems Design and Implementation (San Jose, California) ( NSDI'10). USENIX Association, USA, 21. https://www.usenix.org/legacy/events/nsdi10/tech/full_papers/condie.pdfGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  17. Oracle Corporation. 2019. Oracle Stream Analytics. https://www.oracle.com/middleware/technologies/stream-processing. html. [Online; Accessed November 11, 2019 ].Google ScholarGoogle Scholar
  18. Antony Courtney. 2001. Frappé: Functional Reactive Programming in Java. In Proceedings of the 3rd International Symposium on Practical Aspects of Declarative Languages (PADL '01), I. V. Ramakrishnan (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 29-44. https://doi.org/10.1007/3-540-45241-9_3 Google ScholarGoogle ScholarCross RefCross Ref
  19. Duncan Coutts, Roman Leshchinskiy, and Don Stewart. 2007. Stream Fusion: From Lists to Streams to Nothing at All. In Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming (ICFP '07). Association for Computing Machinery, New York, NY, USA, 315-326. https://doi.org/10.1145/1291151.1291199 Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Chuck Cranor, Theodore Johnson, Oliver Spataschek, and Vladislav Shkapenyuk. 2003. Gigascope: A Stream Database for Network Applications. In Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data (SIGMOD '03). ACM, New York, NY, USA, 647-651. https://doi.org/10.1145/872757.872838 Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Evan Czaplicki and Stephen Chong. 2013. Asynchronous Functional Reactive Programming for GUIs. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '13). ACM, New York, NY, USA, 411-422. https://doi.org/10.1145/2491956.2462161 Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Ben D'Angelo, Sriram Sankaranarayanan, Cesar Sanchez, Will Robinson, Bernd Finkbeiner, Henny B. Sipma, Sandeep Mehrotra, and Zohar Manna. 2005. LOLA: Runtime Monitoring of Synchronous Systems. In Proceedings of the 12th International Symposium on Temporal Representation and Reasoning (TIME'05). IEEE, New York, NY, USA, 166-174. https://doi.org/10.1109/TIME. 2005.26 Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Mayur Datar, Aristides Gionis, Piotr Indyk, and Rajeev Motwani. 2002. Maintaining Stream Statistics over Sliding Windows. SIAM J. Comput. 31, 6 ( 2002 ), 1794-1813. https://doi.org/10.1137/S0097539701398363 Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Alan Demers, Johannes Gehrke, Biswanath Panda, Mirek Riedewald, Varun Sharma, and Walker White. 2007. Cayuga: A General Purpose Event Monitoring System. In Proceedings of the 3rd Biennial Conference on Innovative Data Systems Research (CIDR '07). 412-422. http://cidrdb.org/cidr2007/papers/cidr07p47.pdfGoogle ScholarGoogle Scholar
  25. Jyotirmoy V. Deshmukh, A. Donzé, Shromona Ghosh, Xiaoqing Jin, Garvit Juniwal, and Sanjit A. Seshia. 2017. Robust Online Monitoring of Signal Temporal Logic. Formal Methods in System Design 51, 1 ( 01 Aug 2017 ), 5-30. https: //doi.org/10.1007/s10703-017-0286-7 Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Conal Elliott and Paul Hudak. 1997. Functional Reactive Animation. In Proceedings of the Second ACM SIGPLAN International Conference on Functional Programming (ICFP '97). ACM, New York, NY, USA, 263-273. https://doi.org/10.1145/258948. 258973 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Inc EsperTech. 2006. Esper. http://www.espertech.com/esper/. [Online; Accessed April 3, 2019 ].Google ScholarGoogle Scholar
  28. Flux 2020. Query and code together with Flux. https://www.influxdata.com/products/flux/. [Online; Accessed 11 August 2020 ].Google ScholarGoogle Scholar
  29. Jeremy Gibbons. 2004. Streaming Representation-Changers. In Mathematics of Program Construction. Springer, Berlin, Heidelberg, 142-168. https://doi.org/10.1007/978-3-540-27764-4_9 Google ScholarGoogle ScholarCross RefCross Ref
  30. Andrew Gill, John Launchbury, and Simon L. Peyton Jones. 1993. A Short Cut to Deforestation. In Proceedings of the Conference on Functional Programming Languages and Computer Architecture (FPCA '93). Association for Computing Machinery, New York, NY, USA, 223-232. https://doi.org/10.1145/165180.165214 Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Lewis Girod, Yuan Mei, Ryan Newton, Stanislav Rost, Arvind Thiagarajan, Hari Balakrishnan, and Samuel Madden. 2007. The Case for a Signal-Oriented Data Stream Management System. In Proceedings of the 3rd Biennial Conference on Innovative Data Systems Research (CIDR '07). 397-406. http://cidrdb.org/cidr2007/papers/cidr07p45.pdfGoogle ScholarGoogle Scholar
  32. Lewis Girod, Yuan Mei, Ryan Newton, Stanislav Rost, Arvind Thiagarajan, Hari Balakrishnan, and Samuel Madden. 2008. XStream: a Signal-Oriented Data Stream Management System. In 2008 IEEE 24th International Conference on Data Engineering. IEEE, New York, NY, USA, 1180-1189. https://doi.org/10.1109/ICDE. 2008.4497527 Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Daniel Gyllstrom, Eugene Wu, Hee-Jin Chae, Yanlei Diao, Patrick Stahlberg, and Gordon Anderson. 2007. SASE: Complex Event Processing over Streams. In Proceedings of the 3rd Biennial Conference on Innovative Data Systems Research (CIDR '07) (Asilomar, CA, USA). 407-411. http://cidrdb.org/cidr2007/papers/cidr07p46.pdfGoogle ScholarGoogle Scholar
  34. Moustafa A. Hammad, Mohamed F. Mokbel, Mohamed H. Ali, Walid G. Aref, Ann Christine Catlin, Ahmed K. Elmagarmid, Mohamed Eltabakh, Mohamed G. Elfeky, Thanaa M. Ghanem, Robert Gwadera, Ihab F. Ilyas, Mirette Marzouk, and Xiaopeng Xiong. 2004. Nile: A Query Processing Engine for Data Streams. In Proceedings of the 20th International Conference on Data Engineering (ICDE '04). IEEE, New York, NY, USA, 851-851. https://doi.org/10.1109/ICDE. 2004.1320080 Google ScholarGoogle ScholarCross RefCross Ref
  35. Klaus Havelund and Grigore Roşu. 2004. Eficient Monitoring of Safety Properties. International Journal on Software Tools for Technology Transfer 6, 2 ( 2004 ), 158-173. https://doi.org/10.1007/s10009-003-0117-6 Google ScholarGoogle ScholarCross RefCross Ref
  36. Martin Hirzel. 2012. Partition and Compose: Parallel Complex Event Processing. In Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems (DEBS '12). ACM, New York, NY, USA, 191-200. https://doi.org/10.1145/ 2335484.2335506 Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Martin Hirzel, Scott Schneider, and Kanat Tangwongsan. 2017. Sliding-Window Aggregation Algorithms: Tutorial. In Proceedings of the 11th ACM International Conference on Distributed and Event-based Systems (DEBS '17). ACM, New York, NY, USA, 11-14. https://doi.org/10.1145/3093742.3095107 Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Y. Ichimaru and G. B. Moody. 1999. Development of the polysomnographic database on CD-ROM. Psychiatry and Clinical Neurosciences 53, 2 ( 1999 ), 175-177. https://doi.org/10.1046/j.1440-1819. 1999. 00527.x Google ScholarGoogle ScholarCross RefCross Ref
  39. InfluxDB 2020. InfluxDB: Real-time visibility into stacks, sensors and systems. https://www.influxdata.com/. [Online; Accessed 11 August 2020 ].Google ScholarGoogle Scholar
  40. Hojjat Jafarpour, Rohan Desai, and D Guy. 2019. KSQL: Streaming SQL Engine for Apache Kafka.. In EDBT. www.OpenProceedings.org, 524-533. https://openproceedings.org/2019/conf/edbt/EDBT19_paper_329.pdfGoogle ScholarGoogle Scholar
  41. Patricia Johann. 2001. Short Cut Fusion: Proved and Improved. In Semantics, Applications, and Implementation of Program Generation. Springer, Berlin, Heidelberg, 47-71. https://doi.org/10.1007/3-540-44806-3_4 Google ScholarGoogle ScholarCross RefCross Ref
  42. Gilles Kahn. 1974. The Semantics of a Simple Language for Parallel Programming. Information Processing 74 ( 1974 ), 471-475.Google ScholarGoogle Scholar
  43. Gilles Kahn and David B. MacQueen. 1977. Coroutines and Networks of Parallel Processes. Information Processing 77 ( 1977 ), 993-998. https://hal.inria.fr/inria-00306565/Google ScholarGoogle Scholar
  44. Oleg Kiselyov, Aggelos Biboudis, Nick Palladinos, and Yannis Smaragdakis. 2017. Stream Fusion, to Completeness. SIGPLAN Not. 52, 1 (Jan. 2017 ), 285-299. https://doi.org/10.1145/3093333.3009880 Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Sanjeev Kulkarni, Nikunj Bhagat, Maosong Fu, Vikas Kedigehalli, Christopher Kellogg, Sailesh Mittal, Jignesh M. Patel, Karthik Ramasamy, and Siddarth Taneja. 2015. Twitter Heron: Stream Processing at Scale. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data (SIGMOD '15). ACM, New York, NY, USA, 239-250. https://doi.org/10.1145/2723372.2742788 Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Edward Ashford Lee and David G. Messerschmitt. 1987. Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing. IEEE Trans. Comput. C-36, 1 (Jan 1987 ), 24-35. https://doi.org/10.1109/TC. 1987.5009446 Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Edward. A. Lee and David G. Messerschmitt. 1987. Synchronous Data Flow. Proc. IEEE 75, 9 ( 1987 ), 1235-1245. https: //doi.org/10.1109/PROC. 1987.13876 Google ScholarGoogle ScholarCross RefCross Ref
  48. Martin Leucker and Christian Schallhart. 2009. A Brief Account of Runtime Verification. The Journal of Logic and Algebraic Programming 78, 5 ( 2009 ), 293-303. https://doi.org/10.1016/j.jlap. 2008. 08.004 The 1st Workshop on Formal Languages and Analysis of Contract-Oriented Software (FLACOS'07). Google ScholarGoogle ScholarCross RefCross Ref
  49. Jin Li, David Maier, Kristin Tufte, Vassilis Papadimos, and Peter A. Tucker. 2005. No Pane, No Gain: Eficient Evaluation of Sliding-window Aggregates over Data Streams. SIGMOD Rec. 34, 1 (March 2005 ), 39-44. https://doi.org/10.1145/ 1058150.1058158 Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Inc Lightbend. 2020. Akka Streams. https://akka.io/. [Online; Accessed March 10, 2020 ].Google ScholarGoogle Scholar
  51. Samuel Madden, Mehul Shah, Joseph M. Hellerstein, and Vijayshankar Raman. 2002. Continuously Adaptive Continuous Queries over Streams. In Proceedings of the 2002 ACM SIGMOD International Conference on Management of Data (SIGMOD '02). ACM, New York, NY, USA, 49-60. https://doi.org/10.1145/564691.564698 Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Ingo Maier and Martin Odersky. 2012. Deprecating the Observer Pattern with Scala. React. Technical Report. EPFL. 20 pages. http://infoscience.epfl.ch/record/176887Google ScholarGoogle Scholar
  53. Konstantinos Mamouras. 2020. Semantic Foundations for Deterministic Dataflow and Stream Processing. In Proceedings of the 29th European Symposium on Programming (ESOP '20) (Lecture Notes in Computer Science, Vol. 12075 ), Peter Müller (Ed.). Springer, Berlin, Heidelberg, 394-427. https://doi.org/10.1007/978-3-030-44914-8_15 Google ScholarGoogle ScholarCross RefCross Ref
  54. Konstantinos Mamouras, Mukund Raghothaman, Rajeev Alur, Zachary G. Ives, and Sanjeev Khanna. 2017. StreamQRE: Modular Specification and Eficient Evaluation of Quantitative Queries over Streaming Data. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '17). ACM, New York, NY, USA, 693-708. https://doi.org/10.1145/3062341.3062369 Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Konstantinos Mamouras, Caleb Stanford, Rajeev Alur, Zachary G. Ives, and Val Tannen. 2019. Data-Trace Types for Distributed Stream Processing Systems. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2019 ). ACM, New York, NY, USA, 670-685. https://doi.org/10.1145/3314221.3314580 Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Konstantinos Mamouras and Zhifu Wang. 2020. Online Signal Monitoring with Bounded Lag. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems ( 2020 ). https://doi.org/10.1109/TCAD. 2020.3013053 Google ScholarGoogle ScholarCross RefCross Ref
  57. Yuan Mei and Samuel Madden. 2009. ZStream: A Cost-based Query Processor for Adaptively Detecting Composite Events. In Proceedings of the 2009 ACM SIGMOD International Conference on Management of Data (SIGMOD '09). ACM, New York, NY, USA, 193-206. https://doi.org/10.1145/1559845.1559867 Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Erik Meijer. 2012. Your Mouse is a Database. Commun. ACM 55, 5 (May 2012 ), 66-73. https://doi.org/10.1145/2160718.2160735 Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Leo A. Meyerovich, Arjun Guha, Jacob Baskin, Gregory H. Cooper, Michael Greenberg, Aleks Bromfield, and Shriram Krishnamurthi. 2009. Flapjax: A Programming Language for Ajax Applications. In Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA '09). ACM, New York, NY, USA, 1-20. https://doi.org/10.1145/1640089.1640091 Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. George B. Moody. 2018. Single-channel QRS detector. https://www.physionet.org/physiotools/wag/sqrs-1.htm. [Online; Last revised 22 March 2018 ].Google ScholarGoogle Scholar
  61. Rajeev Motwani, Jennifer Widom, Arvind Arasu, Brian Babcock, Shivnath Babu, Mayur Datar, Gurmeet Manku, Chris Olston, Justin Rosenstein, and Rohit Varma. 2003. Query Processing, Approximation, and Resource Management in a Data Stream Management System. In Proceedings of the First Biennial Conference on Innovative Data Systems Research (CIDR '03). www.cidrdb.org. http://cidrdb.org/cidr2003/program/p22.pdfGoogle ScholarGoogle Scholar
  62. Derek G. Murray, Frank McSherry, Rebecca Isaacs, Michael Isard, Paul Barham, and Martín Abadi. 2013. Naiad: A Timely Dataflow System. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (SOSP '13). ACM, New York, NY, USA, 439-455. https://doi.org/10.1145/2517349.2522738 Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Jefrey F. Naughton, David J. DeWitt, David Maier, Ashraf Aboulnaga, Jianjun Chen, Leonidas Galanis, Jaewoo Kang, Rajasekar Krishnamurthy, Qiong Luo, Naveen Prakash, et al. 2001. The Niagara Internet Query System. IEEE Data Engineering Bulletin ( 2001 ).Google ScholarGoogle Scholar
  64. Leonardo Neumeyer, Bruce Robbins, Anish Nair, and Anand Kesari. 2010. S4: Distributed Stream Computing Platform. In Proceedings of the 2010 IEEE International Conference on Data Mining Workshops. IEEE, New York, NY, USA, 170-177. https://doi.org/10.1109/ICDMW. 2010.172 Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Milos Nikolic, Badrish Chandramouli, and Jonathan Goldstein. 2017. Enabling Signal Processing over Data Streams. In Proceedings of the 2017 ACM International Conference on Management of Data (SIGMOD '17). ACM, New York, NY, USA, 95-108. https://doi.org/10.1145/3035918.3035935 Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Henrik Nilsson, John Peterson, and Paul Hudak. 2003. Functional Hybrid Modeling. In Practical Aspects of Declarative Languages. Springer Berlin Heidelberg, Berlin, Heidelberg, 376-390. https://doi.org/10.1007/3-540-36388-2_25 Google ScholarGoogle ScholarCross RefCross Ref
  67. Shadi A. Noghabi, Kartik Paramasivam, Yi Pan, Navina Ramesh, Jon Bringhurst, Indranil Gupta, and Roy H. Campbell. 2017. Samza: Stateful Scalable Stream Processing at LinkedIn. Proceedings of the VLDB Endowment 10, 12 ( 2017 ), 1634-1645. https://doi.org/10.14778/3137765.3137770 Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Oracle. 2014. Java Stream. https://docs.oracle.com/javase/8/. [Online; Accessed March 31, 2019 ].Google ScholarGoogle Scholar
  69. Michael F. O'Rourke. 1971. The arterial pulse in health and disease. American Heart Journal 82, 5 ( 1971 ), 687-702. https://doi.org/10.1016/ 0002-8703 ( 71 ) 90340-1 Google ScholarGoogle ScholarCross RefCross Ref
  70. J. Pan and W. J. Tompkins. 1985. A Real-Time QRS Detection Algorithm. IEEE Transactions on Biomedical Engineering BME-32, 3 (March 1985 ), 230-236. https://doi.org/10.1109/TBME. 1985.325532 Google ScholarGoogle ScholarCross RefCross Ref
  71. ReactiveX. 2020. ReactiveX. http://reactivex.io/. [Online; Accessed March 10, 2020 ].Google ScholarGoogle Scholar
  72. Reactor 2020. Project Reactor: Create Eficient Reactive Systems. https://projectreactor.io/. [Online; Accessed 28 March 2020 ].Google ScholarGoogle Scholar
  73. RxJava 2020. RxJava: Reactive Extensions for the JVM. Available at https://github.com/ReactiveX/RxJava. [ Online; accessed March 10, 2020 ].Google ScholarGoogle Scholar
  74. Reza Sadri, Carlo Zaniolo, Amir Zarkesh, and Jafar Adibi. 2004. Expressing and Optimizing Sequence Queries in Database Systems. ACM Transactions on Database Systems 29, 2 ( 2004 ), 282-318. https://doi.org/10.1145/1005566.1005568 Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. Scott Schneider, Martin Hirzel, Buğra Gedik, and Kun-Lung Wu. 2015. Safe Data Parallelism for General Streaming. IEEE Trans. Comput. 64, 2 ( 2015 ), 504-517. https://doi.org/10.1109/TC. 2013.221 Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. Sriskandarajah Suhothayan, Kasun Gajasinghe, Isuru Loku Narangoda, Subash Chaturanga, Srinath Perera, and Vishaka Nanayakkara. 2011. Siddhi: A Second Look at Complex Event Processing Architectures. In Proceedings of the 2011 ACM Workshop on Gateway Computing Environments (GCE '11). ACM, New York, NY, USA, 43-50. https://doi.org/10.1145/ 2110486.2110493 Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. Josef Svenningsson. 2002. Shortcut Fusion for Accumulating Parameters & Zip-like Functions. In Proceedings of the Seventh ACM SIGPLAN International Conference on Functional Programming (ICFP '02). Association for Computing Machinery, New York, NY, USA, 124-132. https://doi.org/10.1145/581478.581491 Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Akihiko Takano and Erik Meijer. 1995. Shortcut Deforestation in Calculational Form. In Proceedings of the Seventh International Conference on Functional Programming Languages and Computer Architecture (FPCA '95). Association for Computing Machinery, New York, NY, USA, 306-313. https://doi.org/10.1145/224164.224221 Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. Kanat Tangwongsan, Martin Hirzel, Scott Schneider, and Kun-Lung Wu. 2015. General Incremental Sliding-window Aggregation. Proc. VLDB Endow. 8, 7 (Feb. 2015 ), 702-713. https://doi.org/10.14778/2752939.2752940 Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. TAQ 2019. TAQ Database. https://www.nyse.com/. [Online; Accessed September 6, 2019 ].Google ScholarGoogle Scholar
  81. Prasanna Thati and Grigore Roşu. 2005. Monitoring Algorithms for Metric Temporal Logic Specifications. Electronic Notes in Theoretical Computer Science 113 ( 2005 ), 145-162. https://doi.org/10.1016/j.entcs. 2004. 01. 029 Proceedings of the Fourth Workshop on Runtime Verification (RV 2004 ). Google ScholarGoogle ScholarCross RefCross Ref
  82. William Thies, Michal Karczmarek, and Saman Amarasinghe. 2002. StreamIt: A Language for Streaming Applications. In Proceedings of the 11th International Conference on Compiler Construction (CC '02) (Lecture Notes in Computer Science, Vol. 2304 ), R. Nigel Horspool (Ed.). Springer, Berlin, Heidelberg, 179-196. https://doi.org/10.1007/3-540-45937-5_14 Google ScholarGoogle ScholarCross RefCross Ref
  83. Ankit Toshniwal, Siddarth Taneja, Amit Shukla, Karthik Ramasamy, Jignesh M. Patel, Sanjeev Kulkarni, Jason Jackson, Krishna Gade, Maosong Fu, Jake Donham, Nikunj Bhagat, Sailesh Mittal, and Dmitriy Ryaboy. 2014. Storm @ Twitter. In Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data (SIGMOD '14). ACM, New York, NY, USA, 147-156. https://doi.org/10.1145/2588555.2595641 Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. Trill 2020. Trill Documentation: Best Practices for Using Trill in Real-Time Deployments. Available at https://github.com/ microsoft/Trill/blob/master/Documentation/BestPractices.pdf. [Online; accessed March 10, 2020 ].Google ScholarGoogle Scholar
  85. Pete Tucker, Kristin Tufte, Vassilis Papadimos, and David Maier. 2002. A benchmark for queries over data streams. http://datalab.cs.pdx.edu/niagara/NEXMark/. [Online; Accessed October 15, 2019 ].Google ScholarGoogle Scholar
  86. Philip Wadler. 1990. Deforestation: transforming programs to eliminate trees. Theoretical Computer Science 73, 2 ( 1990 ), 231-248. https://doi.org/10.1016/ 0304-3975 ( 90 ) 90147-A Google ScholarGoogle ScholarDigital LibraryDigital Library
  87. Eugene Wu, Yanlei Diao, and Shariq Rizvi. 2006. High-Performance Complex Event Processing over Streams. In Proceedings of the 2006 ACM SIGMOD International Conference on Management of Data (SIGMOD '06). Association for Computing Machinery, New York, NY, USA, 407-418. https://doi.org/10.1145/1142473.1142520 Google ScholarGoogle ScholarDigital LibraryDigital Library
  88. Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauly, Michael J. Franklin, Scott Shenker, and Ion Stoica. 2012. Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing. In Presented as part of the 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI 12). USENIX, San Jose, CA, 15-28. https://www.usenix.org/conference/nsdi12/technical-sessions/presentation/zahariaGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  89. Matei Zaharia, Tathagata Das, Haoyuan Li, Timothy Hunter, Scott Shenker, and Ion Stoica. 2013. Discretized Streams: Fault-tolerant Streaming Computation at Scale. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (SOSP '13). ACM, New York, NY, USA, 423-438. https://doi.org/10.1145/2517349.2522737 Google ScholarGoogle ScholarDigital LibraryDigital Library
  90. Fred Zemke, Andrew Witkowski, Mitch Cherniack, and Latha Colby. 2007. Pattern Matching in Sequences of Rows. Technical Report. IBM. ANSI Standard Proposal.Google ScholarGoogle Scholar
  91. W. Zong, T. Heldt, G. B. Moody, and R. G. Mark. 2003. An open-source algorithm to detect onset of arterial blood pressure pulses. In Computers in Cardiology, 2003. IEEE, New York, NY, USA, 259-262. https://doi.org/10.1109/CIC. 2003.1291140 Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. StreamQL: a query language for processing streaming time series

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!