{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,10]],"date-time":"2026-01-10T22:14:19Z","timestamp":1768083259132,"version":"3.49.0"},"reference-count":27,"publisher":"Association for Computing Machinery (ACM)","issue":"13","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. VLDB Endow."],"published-print":{"date-parts":[[2016,9]]},"abstract":"<jats:p>\n            Guaranteed tuple processing has become critically important for many streaming applications. This paper describes how we enabled IBM Streams, an enterprise-grade stream processing system, to provide data processing guarantees. Our solution goes from language-level abstractions to a runtime protocol. As a result, with a couple of simple annotations at the source code level, IBM Streams developers can define\n            <jats:italic>consistent regions<\/jats:italic>\n            , allowing any subgraph of their streaming application to achieve guaranteed tuple processing. At runtime, a consistent region periodically executes a variation of the Chandy-Lamport snapshot algorithm to establish a consistent global state for that region. The coupling of consistent states with data replay enables guaranteed tuple processing.\n          <\/jats:p>","DOI":"10.14778\/3007263.3007272","type":"journal-article","created":{"date-parts":[[2016,11,1]],"date-time":"2016-11-01T13:47:47Z","timestamp":1478008067000},"page":"1341-1352","source":"Crossref","is-referenced-by-count":23,"title":["Consistent regions"],"prefix":"10.14778","volume":"9","author":[{"given":"Gabriela","family":"Jacques-Silva","sequence":"first","affiliation":[{"name":"IBM T. J. Watson Research Center"}]},{"given":"Fang","family":"Zheng","sequence":"additional","affiliation":[{"name":"IBM T. J. Watson Research Center"}]},{"given":"Daniel","family":"Debrunner","sequence":"additional","affiliation":[{"name":"IBM Analytics Platform"}]},{"given":"Kun-Lung","family":"Wu","sequence":"additional","affiliation":[{"name":"IBM T. J. Watson Research Center"}]},{"given":"Victor","family":"Dogaru","sequence":"additional","affiliation":[{"name":"IBM Analytics Platform"}]},{"given":"Eric","family":"Johnson","sequence":"additional","affiliation":[{"name":"IBM Analytics Platform"}]},{"given":"Michael","family":"Spicer","sequence":"additional","affiliation":[{"name":"IBM Analytics Platform"}]},{"given":"Ahmet Erdem","family":"Sariy\u00fcce","sequence":"additional","affiliation":[{"name":"Sandia National Labs"}]}],"member":"320","published-online":{"date-parts":[[2016,9]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"March","author":"InfoSphere Streams IBM","year":"2015","unstructured":"IBM InfoSphere Streams Version 4.0. https:\/\/www-01.ibm.com\/support\/knowledgecenter\/SSCRJU_4.0.0\/ , March 2015 . IBM InfoSphere Streams Version 4.0. https:\/\/www-01.ibm.com\/support\/knowledgecenter\/SSCRJU_4.0.0\/, March 2015."},{"key":"e_1_2_1_2_1","volume-title":"http:\/\/flink.apache.org","year":"2016","unstructured":"Apache Flink. http:\/\/flink.apache.org , 2016 . Apache Flink. http:\/\/flink.apache.org, 2016."},{"key":"e_1_2_1_3_1","volume-title":"http:\/\/storm.apache.org","year":"2016","unstructured":"Apache Storm. http:\/\/storm.apache.org , 2016 . Apache Storm. http:\/\/storm.apache.org, 2016."},{"key":"e_1_2_1_4_1","volume-title":"Guaranteeing Message Processing. https:\/\/storm.apache.org\/documentation\/Guaranteeing-message-processing.html","year":"2016","unstructured":"Apache Storm. Guaranteeing Message Processing. https:\/\/storm.apache.org\/documentation\/Guaranteeing-message-processing.html , 2016 . Apache Storm. Guaranteeing Message Processing. https:\/\/storm.apache.org\/documentation\/Guaranteeing-message-processing.html, 2016."},{"key":"e_1_2_1_5_1","volume-title":"Trident State. https:\/\/storm.apache.org\/documentation\/Trident-state.html","year":"2016","unstructured":"Apache Storm. Trident State. https:\/\/storm.apache.org\/documentation\/Trident-state.html , 2016 . Apache Storm. Trident State. https:\/\/storm.apache.org\/documentation\/Trident-state.html, 2016."},{"key":"e_1_2_1_6_1","volume-title":"http:\/\/www.cs.cmu.edu\/&tilde;.\/enron\/","year":"2016","unstructured":"Enron Email Dataset. http:\/\/www.cs.cmu.edu\/&tilde;.\/enron\/ , 2016 . Enron Email Dataset. http:\/\/www.cs.cmu.edu\/&tilde;.\/enron\/, 2016."},{"key":"e_1_2_1_7_1","volume-title":"https:\/\/github.com\/google\/leveldb","year":"2016","unstructured":"Google's Leveldb. https:\/\/github.com\/google\/leveldb , 2016 . Google's Leveldb. https:\/\/github.com\/google\/leveldb, 2016."},{"key":"e_1_2_1_8_1","volume-title":"http:\/\/redis.io\/","year":"2016","unstructured":"Redis Key-Value Store. http:\/\/redis.io\/ , 2016 . Redis Key-Value Store. http:\/\/redis.io\/, 2016."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.14778\/2536222.2536229"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1331904.1331907"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/INFOCOM.2008.189"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1989323.1989352"},{"key":"e_1_2_1_13_1","volume-title":"Lightweight asynchronous snapshots for distributed dataflows. CoRR, abs\/1506.08603","author":"Carbone P.","year":"2015","unstructured":"P. Carbone Lightweight asynchronous snapshots for distributed dataflows. CoRR, abs\/1506.08603 , 2015 . P. Carbone et al. Lightweight asynchronous snapshots for distributed dataflows. CoRR, abs\/1506.08603, 2015."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/214451.214456"},{"key":"e_1_2_1_15_1","volume-title":"Middleware","author":"Gu Y.","year":"2009","unstructured":"Y. Gu An empirical study of high availability in stream processing systems . In Middleware , 2009 . Y. Gu et al. An empirical study of high availability in stream processing systems. In Middleware, 2009."},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1147\/JRD.2013.2243535"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2005.72"},{"key":"e_1_2_1_18_1","volume-title":"February","author":"Jacques-Silva G.","year":"2015","unstructured":"G. Jacques-Silva . Guaranteed tuple processing in InfoSphere Streams v4 with consistent regions. https:\/\/developer.ibm.com\/streamsdev\/2015\/02\/20\/processing-tuples-least-infosphere-streams-consistent-regions\/ , February 2015 . G. Jacques-Silva. Guaranteed tuple processing in InfoSphere Streams v4 with consistent regions. https:\/\/developer.ibm.com\/streamsdev\/2015\/02\/20\/processing-tuples-least-infosphere-streams-consistent-regions\/, February 2015."},{"key":"e_1_2_1_19_1","volume-title":"DSN","author":"G.","year":"2009","unstructured":"G. Jacques-Silva et al. Language level checkpointing support for stream processing applications . In DSN , 2009 . G. Jacques-Silva et al. Language level checkpointing support for stream processing applications. In DSN, 2009."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2002259.2002292"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2723372.2742788"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDMW.2010.172"},{"key":"e_1_2_1_23_1","unstructured":"Oracle. Java Management Extensions. http:\/\/docs.oracle.com\/javase\/8\/docs\/technotes\/guides\/jmx\/index.html 2015.  Oracle. Java Management Extensions. http:\/\/docs.oracle.com\/javase\/8\/docs\/technotes\/guides\/jmx\/index.html 2015."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2012.108"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2522737"},{"key":"e_1_2_1_26_1","unstructured":"F. Zheng etal Adaptive incremental checkpointing for high-performance data streaming applications. In Under submission.  F. Zheng et al. Adaptive incremental checkpointing for high-performance data streaming applications. In Under submission ."},{"key":"e_1_2_1_27_1","volume-title":"IPDPS","author":"Zhu Q.","year":"2008","unstructured":"Q. Zhu Supporting fault-tolerance in streaming grid applications . In IPDPS , 2008 . Q. Zhu et al. Supporting fault-tolerance in streaming grid applications. In IPDPS, 2008."}],"container-title":["Proceedings of the VLDB Endowment"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.14778\/3007263.3007272","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,28]],"date-time":"2022-12-28T09:36:56Z","timestamp":1672220216000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.14778\/3007263.3007272"}},"subtitle":["guaranteed tuple processing in IBM streams"],"short-title":[],"issued":{"date-parts":[[2016,9]]},"references-count":27,"journal-issue":{"issue":"13","published-print":{"date-parts":[[2016,9]]}},"alternative-id":["10.14778\/3007263.3007272"],"URL":"https:\/\/doi.org\/10.14778\/3007263.3007272","relation":{},"ISSN":["2150-8097"],"issn-type":[{"value":"2150-8097","type":"print"}],"subject":[],"published":{"date-parts":[[2016,9]]}}}