IP Library › Granted Patent US 12,375,556
Granted Patent B2
US 12,375,556 · App. 18/194,583 · Granted Jul 29, 2025

Isolated read channel categories at streaming data service

Inventors: Benjamin Warren Mercier (Seattle, WA); Sayantan Chakravorty (Sammamish, WA); Yasemin Avcular (Seattle, WA); Charlie Paucard (Seattle, WA)
Assignee: Amazon Technologies, Inc.
H04L67/1029G06F16/285
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,375,556
App. No.
18/194,583
Granted
Jul 29, 2025
Kind
B2
Abstract

In response to a first programmatic request, metadata indicating that a first isolated read channel of a real-time category has been associated with a first target stream is stored at a stream management service. In response to another request, metadata indicating that a second isolated read channel of a non-real-time category has been associated with a second target stream is stored. In response to a read request indicating the first channel or the second channel, one or more data records of the corresponding target streams are provided.

Claims (51)

1. A computer-implemented method, comprising:

configuring, on behalf of a first client of a streaming data service, a dedicated resource for access to one or more data streams by the first client, wherein the dedicated resource is not to be shared with other clients;

causing, by the streaming data service, contents of the one or more data streams to be provided to the first client using the dedicated resource in accordance with a first performance limit selected for the dedicated resource; and

in response to receiving, at the streaming data service, a programmatic request for a change to the first performance limit, causing additional contents of the one or more data streams to be provided to the first client via the dedicated resource in accordance with a second performance limit which differs from the first performance limit.

2. The computer-implemented method as recited in claim 1 , wherein the first performance limit indicates a first rate at which contents of the one or more data streams are to be read by the first client, and wherein the second performance limit indicates a second rate at which contents of the one or more data streams are to be read by the first client.

3. The computer-implemented method as recited in claim 1 , further comprising:

assigning, by the streaming data service in response to the programmatic request for the change to the first performance limit, at least a portion of an additional storage device to a particular data stream of the one or more data streams.

4. The computer-implemented method as recited in claim 1 , further comprising:

causing, by the streaming data service in response to the programmatic request for the change to the first performance limit, at least a subset of contents of a particular data stream of the one or more data streams to be transferred from a first storage device with a first performance capacity to a second storage device with a second performance capacity.

5. The computer-implemented method as recited in claim 1 , further comprising:

obtaining, from the first client, a programmatic request indicating a single-tenancy requirement of the first client with respect to the one or more data streams, wherein said configuring the dedicated resource is responsive to the programmatic request indicating the single-tenancy requirement.

6. The computer-implemented method as recited in claim 1 , further comprising:

obtaining, from the first client, a filtering criterion associated with a particular data stream of the one or more data streams;

receiving, from one or more sources, one or more records of the particular data stream; and

in response to determining that a particular record of the one or more records satisfies the filtering criterion, transmitting at least a portion of the particular record using the dedicated resource.

7. The computer-implemented method as recited in claim 1 , wherein the further comprising:

establishing a persistent network connection between a stream processing application of the first client and a data retrieval subsystem of the streaming data service, wherein causing the additional contents of the one or more data streams to be provided to the first client via the dedicated resource comprises utilizing the persistent network connection to transfer a plurality of stream data records in a push mode, without receiving respective read requests for individual ones of the plurality of stream data records.

8. A system, comprising:

one or more computing devices;

wherein the one or more computing devices include instructions that upon execution on or across the one or more computing devices:

configure, on behalf of a first client of a streaming data service, a dedicated resource for access to one or more data streams by the first client, wherein the dedicated resource is not to be shared with other clients;

cause, by the streaming data service, contents of the one or more data streams to be provided to the first client using the dedicated resource in accordance with a first performance limit selected for the dedicated resource; and

in response to receiving, at the streaming data service, a programmatic request for a change to the first performance limit, cause additional contents of the one or more data streams to be provided to the first client via the dedicated resource in accordance with a second performance limit which differs from the first performance limit.

9. The system as recited in claim 8 , wherein the first performance limit indicates a first rate at which contents of the one or more data streams are to be read by the first client, and wherein the second performance limit indicates a second rate at which contents of the one or more data streams are to be read by the first client.

10. The system as recited in claim 8 , wherein the one or more computing devices include further instructions that upon execution on or across the one or more computing devices:

assign, by the streaming data service in response to the programmatic request for the change to the first performance limit, at least a portion of an additional storage device to a particular data stream of the one or more data streams.

11. The system as recited in claim 8 , wherein the one or more computing devices include further instructions that upon execution on or across the one or more computing devices:

cause, by the streaming data service in response to the programmatic request for the change to the first performance limit, at least a subset of contents of a particular data stream of the one or more data streams to be transferred from a first storage device with a first performance capacity to a second storage device with a second performance capacity.

12. The system as recited in claim 8 , wherein the one or more computing devices include further instructions that upon execution on or across the one or more computing devices:

obtain, from the first client, a programmatic request indicating a single-tenancy requirement of the first client with respect to the one or more data streams, wherein the dedicated resource is configured in response to the programmatic request indicating the single-tenancy requirement.

13. The system as recited in claim 8 , wherein the one or more computing devices include further instructions that upon execution on or across the one or more computing devices:

obtain, from the first client, a filtering criterion associated with a particular data stream of the one or more data streams;

receive, from one or more sources, one or more records of the particular data stream; and

in response to determining that a particular record of the one or more records satisfies the filtering criterion, transmit at least a portion of the particular record using the dedicated resource.

14. The system as recited in claim 8 , wherein the one or more computing devices include further instructions that upon execution on or across the one or more computing devices:

establish a persistent network connection between a stream processing application of the first client and a data retrieval subsystem of the streaming data service, wherein the additional contents of the one or more data streams are provided via the persistent network connection in a push mode, wherein the additional contents comprise a plurality of stream data records, and wherein in accordance with the push mode, individual ones of the plurality of data stream records are provided without receiving respective read requests.

15. One or more non-transitory computer-accessible storage media storing program instructions that when executed on or across one or more processors:

configure, on behalf of a first client of a streaming data service, a dedicated resource for access to one or more data streams by the first client, wherein the dedicated resource is not to be shared with other clients;

cause, by the streaming data service, contents of the one or more data streams to be provided to the first client using the dedicated resource in accordance with a first performance limit selected for the dedicated resource; and

in response to receiving, at the streaming data service, a programmatic request for a change to the first performance limit, cause additional contents of the one or more data streams to be provided to the first client via the dedicated resource in accordance with a second performance limit which differs from the first performance limit.

16. The one or more non-transitory computer-accessible storage media as recited in claim 15 , wherein the first performance limit indicates a first rate at which contents of the one or more data streams are to be read by the first client, and wherein the second performance limit indicates a second rate at which contents of the one or more data streams are to be read by the first client.

17. The one or more non-transitory computer-accessible storage media as recited in claim 15 , storing further program instructions that when executed on or across the one or more processors:

assign, by the streaming data service in response to the programmatic request for the change to the first performance limit, at least a portion of an additional storage device to a particular data stream of the one or more data streams.

18. The one or more non-transitory computer-accessible storage media as recited in claim 15 , storing further program instructions that when executed on or across the one or more processors:

cause, by the streaming data service in response to the programmatic request for the change to the first performance limit, at least a subset of contents of a particular data stream of the one or more data streams to be transferred from a first storage device with a first performance capacity to a second storage device with a second performance capacity.

19. The one or more non-transitory computer-accessible storage media as recited in claim 15 , storing further program instructions that when executed on or across the one or more processors:

obtain, from the first client, a programmatic request indicating a single-tenancy requirement of the first client with respect to the one or more data streams, wherein the dedicated resource is configured in response to the programmatic request indicating the single-tenancy requirement.

20. The one or more non-transitory computer-accessible storage media as recited in claim 15 , storing further program instructions that when executed on or across the one or more processors:

obtain, from the first client, a filtering criterion associated with a particular data stream of the one or more data streams;

receive, from one or more sources, one or more records of the particular data stream; and

in response to determining that a particular record of the one or more records satisfies the filtering criterion, transmit at least a portion of the particular record using the dedicated resource.

Continuity (4)
Continuation 17105287 · Nov 25, 2020
Continuation 16143340 · Sep 26, 2018
Provisional Application 62698815 · Jul 16, 2018
Related Publication 20230239345A1 · Jul 27, 2023
References Cited (117)
US 5692177A · Miller · 1997 [cited by applicant]
US 5813009A · Johnson et al. · 1998 [cited by applicant]
US 6272598B1 · Arlitt et al. · 2001 [cited by applicant]
US 7386586B1 · Headley et al. · 2008 [cited by applicant]
US 7496637B2 · Han et al. · 2009 [cited by applicant]
US 7716186B2 · Cannon et al. · 2010 [cited by applicant]
US 8095745B1 · Schmidt et al. · 2012 [cited by applicant]
US 8161255B2 · Anglin et al. · 2012 [cited by applicant]
US 8200775B2 · Moore · 2012 [cited by applicant]
US 8255730B2 · Tatsumi · 2012 [cited by applicant]
US 8255739B1 · Chatterjee et al. · 2012 [cited by applicant]
US 8359596B2 · Kobayashi et al. · 2013 [cited by applicant]
US 8386631B2 · Nilsson et al. · 2013 [cited by applicant]
US 8386771B2 · Baker et al. · 2013 [cited by applicant]
US 8463633B2 · Jung et al. · 2013 [cited by applicant]
US 8488661B2 · Menon et al. · 2013 [cited by applicant]
US 8533478B2 · Aguilera et al. · 2013 [cited by applicant]
US 8543746B2 · Roever · 2013 [cited by applicant]
US 8572091B1 · Sivasubramanian et al. · 2013 [cited by applicant]
US 8712963B1 · Douglis et al. · 2014 [cited by applicant]
US 8812752B1 · Shih et al. · 2014 [cited by applicant]
US 9237188B1 · Gabrielson et al. · 2016 [cited by applicant]
US 9276959B2 · Theimer et al. · 2016 [cited by applicant]
US 9413854B1 · Bellingan · 2016 [cited by applicant]
US 9471585B1 · Theimer · 2016 [cited by applicant]
US 9483785B1 · Corley et al. · 2016 [cited by applicant]
US 9588822B1 · Shih et al. · 2017 [cited by applicant]
US 9639589B1 · Theimer et al. · 2017 [cited by applicant]
US 9710307B1 · Corley et al. · 2017 [cited by applicant]
US 9720980B2 · Thomas et al. · 2017 [cited by applicant]
US 9720989B2 · Theimer et al. · 2017 [cited by applicant]
US 9794135B2 · Theimer et al. · 2017 [cited by applicant]
US 9858322B2 · Theimer et al. · 2018 [cited by applicant]
US 10303393B2 · Atherton · 2019 [cited by applicant]
US 10356150B1 · Meyers · 2019 [cited by applicant]
US 10812543B1 · Chakravorty et al. · 2020 [cited by applicant]
US 10976951B2 · Atherton · 2021 [cited by applicant]
US 11621999B2 · Mercier et al. · 2023 [cited by applicant]
US 20050015625A1 · Inoue et al. · 2005 [cited by applicant]
US 20050165972A1 · Miyata et al. · 2005 [cited by applicant]
US 20060230021A1 · Diab et al. · 2006 [cited by applicant]
US 20060259462A1 · Timmons · 2006 [cited by applicant]
US 20060265518A1 · Owens et al. · 2006 [cited by applicant]
US 20070011665A1 · Gandhi et al. · 2007 [cited by applicant]
US 20070022174A1 · Issa · 2007 [cited by applicant]
US 20070027937A1 · McGrattan et al. · 2007 [cited by applicant]
US 20070094156A1 · Isaacs · 2007 [cited by applicant]
US 20070220016A1 · Estrada et al. · 2007 [cited by applicant]
US 20070250835A1 · Kobayashi et al. · 2007 [cited by applicant]
US 20080168503A1 · Sparrell · 2008 [cited by applicant]
US 20090116551A1 · Nilsson · 2009 [cited by examiner]
US 20090125362A1 · Reid et al. · 2009 [cited by applicant]
US 20090238262A1 · Miceli · 2009 [cited by applicant]
US 20100106934A1 · Calder et al. · 2010 [cited by applicant]
US 20100257140A1 · Davis et al. · 2010 [cited by applicant]
US 20100274762A1 · Murphy et al. · 2010 [cited by applicant]
US 20110141882A1 · Rieschl et al. · 2011 [cited by applicant]
US 20110161291A1 · Taleck et al. · 2011 [cited by applicant]
US 20120066337A1 · Wu et al. · 2012 [cited by applicant]
US 20120166401A1 · Li et al. · 2012 [cited by applicant]
US 20120209817A1 · Golab et al. · 2012 [cited by applicant]
US 20120250682A1 · Vincent et al. · 2012 [cited by applicant]
US 20120265890A1 · Carlson et al. · 2012 [cited by applicant]
US 20120297249A1 · Yang et al. · 2012 [cited by applicant]
US 20120303999A1 · Calder et al. · 2012 [cited by applicant]
US 20120317274A1 · Richter et al. · 2012 [cited by applicant]
US 20130073724A1 · Parashar et al. · 2013 [cited by applicant]
US 20130124483A1 · Furuhashi et al. · 2013 [cited by applicant]
US 20130151683A1 · Jain et al. · 2013 [cited by applicant]
US 20130152047A1 · Moorthi et al. · 2013 [cited by applicant]
US 20130166556A1 · Baeumges et al. · 2013 [cited by applicant]
US 20130219483A1 · Cho · 2013 [cited by examiner]
US 20140324920A1 · Hamilton · 2014 [cited by applicant]
US 20150049163A1 · Smurro · 2015 [cited by applicant]
US 20150125007A1 · Haden et al. · 2015 [cited by applicant]
US 20150134626A1 · Theimer et al. · 2015 [cited by applicant]
US 20150134795A1 · Theimer et al. · 2015 [cited by applicant]
US 20150134796A1 · Theimer · 2015 [cited by examiner]
US 20150134797A1 · Theimer et al. · 2015 [cited by applicant]
US 20150278397A1 · Hendrickson et al. · 2015 [cited by applicant]
US 20160352796A1 · Thippesh et al. · 2016 [cited by applicant]
US 20170357703A1 · Theimer et al. · 2017 [cited by applicant]
US 20170364302A1 · Atherton · 2017 [cited by applicant]
US 20180131593A1 · Jain et al. · 2018 [cited by applicant]
US 20190034092A1 · DeKoning · 2019 [cited by applicant]
US 20190034114A1 · Natarajan · 2019 [cited by applicant]
US 20190235784A1 · Atherton · 2019 [cited by applicant]
US 20190354412A1 · Bivens et al. · 2019 [cited by applicant]
US 20200233598A1 · Bezugly · 2020 [cited by applicant]
US 20200285391A1 · Sun · 2020 [cited by applicant]
US 20210117124A1 · Atherton · 2021 [cited by applicant]
JP 2002010234 · 2002 [cited by applicant]
JP 2005250839 · 2005 [cited by applicant]
JP 2010146067 · 2010 [cited by applicant]
JP 201280417 · 2012 [cited by applicant]
JP 2013069205 · 2013 [cited by applicant]
WO 2012168365 · 2012 [cited by applicant]
“Quartz Scheduler 2.1.x Documentation,” retrieved from http://quartz-scheduler.org/files/documentation/Quartz-2.1.x-Documentation.pdfon Feb. 11, 2013. pp. 1-140. [cited by applicant]
Alejandro Abdelnur, “Oozie Specification, a Hadoop Workflow System,” Oct. 8, 2010, retrieved from http://rvs.github.com/oozie/releases/2.2.1/WorkflowFunctionaiSpec.html on Feb. 11, 2013. pp. 1-37. [cited by applicant]
Ani I Pillai and Alejandro Abdelnur, “Oozie Coordinator Specification,” Oct. 8, 2010., retrieved from http://rvs.github.com/oozie/releases/2.2.1 /CoordinatorFunctionaiSpec.html on Feb. 11, 2013. pp. 1-43. [cited by applicant]
“Oozie-Design,” retrieved from http://rvs.github.com/oozie/design.html on Feb. 11, 2013. pp. 1-2. [cited by applicant]
Pierre Dorion, “IBM Tivoli Storage Mangers backup tips”, Apr. 2009, http:/searchdatabackup.techtarget.com/tip/IBM-Tivoli-Storage-Manager-backup-software-tips. [cited by applicant]
Michael Meisinger, “CIAD DM OV Ingestion”, Oct. 25, 2012, Retrieved from URL: https://confluence.oceanobservatories.org/display/syseng/CIAD+DM+OV+Ingestion, pp. 1-4. [cited by applicant]
Extended European Search Report from PCT/US2014065052, Date Mar. 27, 2017, Amazon Technologies, Inc., pp. 1-8. [cited by applicant]
Apache Kafka, “A High-Throughput Distributed Messaging System”, pp. 1-42, Oct. 8, 2013. [cited by applicant]
Amazon Web Services, “Amazon Simple Queue Service (Amazon SQS)”, pp. 1-5, Oct. 8, 2013. [cited by applicant]
Apache Software Foundation, “Hadoop Streaming”, pp. 7-17, 2008. [cited by applicant]
SIGMOD Record, “Parallel Data Processing with MapReduce: A Survey”, Kyong-Ha Lee, et al., pp. 11-20, Dec. 2011. [cited by applicant]
Splunk Inc., “Splunk for Application Management”, pp. 1-2, 2012. [cited by applicant]
GitHub, “Rationale”, pp. 1-2, Oct. 8, 2013. [cited by applicant]
GitHub, “Tutorial”, pp. 1-8, Oct. 8, 2013. [cited by applicant]
Kitagami, et al., “M2M Data Analysis Service System based on Open Source Software Environment,” The Institute of Electronics, Information and Communication Engineers, 2012, pp. 33-38 plus partial English translation. [cited by applicant]
Robert Chansler, et al., “The Architecture of Open Source Applications: The Hadoop Distributed File System”, Retrieved from URL: https://web.archive.org/web/20131110025205/http://www.aosabook.org/en/hdfs.html on Jul. 18… [cited by applicant]
Tom White, “Cloudera Engineering Blog: The Small Files Problem”, Retrieve from URL: http://blog.cloudera.com/blog/2009/02/the-small-files-problem/ on Jul. 18, 2017, pp. 1-17. [cited by applicant]
Ashish Thusoo, et al., “Hive—a Warehousing Solution Over a Map-Reduce Framework”, ACM, VLDB '09, Aug. 24-28, 2009, pp. 1-4. [cited by applicant]
Wilhelm Kleiminger, “Stream Processing in the Cloud”, Imperial College of Science, Technology and Medicine Department of Computing, Jun. 2010, pp. 1-91. [cited by applicant]
“Amazon Kinesis Streams—Developer Guide”, Amazon Web Services, Updated Apr. 19, 2016, pp. 1-136. [cited by applicant]