Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

StreamQL: a query language for processing streaming time series

Published: 13 November 2020 Publication History

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.

Supplementary Material

Auxiliary Presentation Video (oopsla20main-p232-p-video.mp4)
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
[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.pdf
[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
[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
[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,
[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
[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
[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
[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.pdf
[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
[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
[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
[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
[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.pdf
[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
[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.pdf
[17]
Oracle Corporation. 2019. Oracle Stream Analytics. https://www.oracle.com/middleware/technologies/stream-processing. html. [Online; Accessed November 11, 2019 ].
[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
[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
[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
[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
[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
[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
[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.pdf
[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
[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
[27]
Inc EsperTech. 2006. Esper. http://www.espertech.com/esper/. [Online; Accessed April 3, 2019 ].
[28]
Flux 2020. Query and code together with Flux. https://www.influxdata.com/products/flux/. [Online; Accessed 11 August 2020 ].
[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
[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
[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.pdf
[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
[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.pdf
[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
[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
[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
[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
[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
[39]
InfluxDB 2020. InfluxDB: Real-time visibility into stacks, sensors and systems. https://www.influxdata.com/. [Online; Accessed 11 August 2020 ].
[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.pdf
[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
[42]
Gilles Kahn. 1974. The Semantics of a Simple Language for Parallel Programming. Information Processing 74 ( 1974 ), 471-475.
[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/
[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
[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
[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
[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
[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).
[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
[50]
Inc Lightbend. 2020. Akka Streams. https://akka.io/. [Online; Accessed March 10, 2020 ].
[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
[52]
Ingo Maier and Martin Odersky. 2012. Deprecating the Observer Pattern with Scala. React. Technical Report. EPFL. 20 pages. http://infoscience.epfl.ch/record/176887
[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
[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
[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
[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
[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
[58]
Erik Meijer. 2012. Your Mouse is a Database. Commun. ACM 55, 5 (May 2012 ), 66-73. https://doi.org/10.1145/2160718.2160735
[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
[60]
George B. Moody. 2018. Single-channel QRS detector. https://www.physionet.org/physiotools/wag/sqrs-1.htm. [Online; Last revised 22 March 2018 ].
[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.pdf
[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
[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 ).
[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
[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
[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
[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
[68]
Oracle. 2014. Java Stream. https://docs.oracle.com/javase/8/. [Online; Accessed March 31, 2019 ].
[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
[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
[71]
ReactiveX. 2020. ReactiveX. http://reactivex.io/. [Online; Accessed March 10, 2020 ].
[72]
Reactor 2020. Project Reactor: Create Eficient Reactive Systems. https://projectreactor.io/. [Online; Accessed 28 March 2020 ].
[73]
RxJava 2020. RxJava: Reactive Extensions for the JVM. Available at https://github.com/ReactiveX/RxJava. [ Online; accessed March 10, 2020 ].
[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
[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
[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
[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
[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
[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
[80]
TAQ 2019. TAQ Database. https://www.nyse.com/. [Online; Accessed September 6, 2019 ].
[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 ).
[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
[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
[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 ].
[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 ].
[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
[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
[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/zaharia
[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
[90]
Fred Zemke, Andrew Witkowski, Mitch Cherniack, and Latha Colby. 2007. Pattern Matching in Sequences of Rows. Technical Report. IBM. ANSI Standard Proposal.
[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

Cited By

View all
  • (2024)Optimizing Time Series Queries with VersionsProceedings of the ACM on Management of Data10.1145/36549622:3(1-27)Online publication date: 30-May-2024
  • (2023)TiLT: A Time-Centric Approach for Stream Query Optimization and ParallelizationProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3575693.3575704(818-832)Online publication date: 27-Jan-2023
  • (2023)A compositional framework for algebraic quantitative online monitoring over continuous-time signalsInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-023-00719-w25:4(557-573)Online publication date: 1-Aug-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Proceedings of the ACM on Programming Languages
Proceedings of the ACM on Programming Languages  Volume 4, Issue OOPSLA
November 2020
3108 pages
EISSN:2475-1421
DOI:10.1145/3436718
Issue’s Table of Contents
This work is licensed under a Creative Commons Attribution International 4.0 License.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 13 November 2020
Published in PACMPL Volume 4, Issue OOPSLA

Permissions

Request permissions for this article.

Check for updates

Badges

Author Tags

  1. data stream processing
  2. denotational semantics

Qualifiers

  • Research-article

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)237
  • Downloads (Last 6 weeks)16
Reflects downloads up to 03 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Optimizing Time Series Queries with VersionsProceedings of the ACM on Management of Data10.1145/36549622:3(1-27)Online publication date: 30-May-2024
  • (2023)TiLT: A Time-Centric Approach for Stream Query Optimization and ParallelizationProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3575693.3575704(818-832)Online publication date: 27-Jan-2023
  • (2023)A compositional framework for algebraic quantitative online monitoring over continuous-time signalsInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-023-00719-w25:4(557-573)Online publication date: 1-Aug-2023
  • (2022)Ephemeral data handling in microservices with TqueryPeerJ Computer Science10.7717/peerj-cs.10378(e1037)Online publication date: 22-Jul-2022
  • (2021)A Compositional Framework for Quantitative Online Monitoring over Continuous-Time SignalsRuntime Verification10.1007/978-3-030-88494-9_8(142-163)Online publication date: 6-Oct-2021
  • (2021)Algebraic Quantitative Semantics for Efficient Online Temporal MonitoringTools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-030-72016-2_18(330-348)Online publication date: 20-Mar-2021

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media