IP Library › Granted Patent US 12,423,025
Granted Patent B1
US 12,423,025 · App. 18/674,735 · Granted Sep 23, 2025

Shuffle-based request buffer for managing large request volumes

Inventors: Connor William McMonigle (Portland, OR); Stephen Abel (Portland, OR); Nandan Bharatkumar Badheka (Santa Barbara, CA); Adam Ross (Louisville, CO); Lucas Langdon Bengtson (Portland, OR); Jonathan Rand Hall (Portland, OR); Gary Hertel (Portland, OR); Jared James Stewart (Portland, OR); Jocelyn Danae Spayd (Vancouver, WA); Michael Kale (Portland, OR); Liyuan Liu (Seattle, WA); Marisol Curtis (Portland, OR); Alexander Scott Mastrangelo (Seattle, WA); Nicolas Weil (Portland, OR); Nina Jeong Lane (Portland, OR); Arden Rasmussen (Portland, OR); Ruochen Han (Chandler, AZ); Shruti Prakash Singh (Portland, OR); Kyle Sletmoe (Portland, OR); Saurav Sengupta (Beaverton, OR); Vinay Kumar Calastry Ramesh (Hillsboro, OR); Yufei Gao (Portland, OR)
Assignee: Amazon Technologies, Inc.
G06F3/0656G06F3/0613G06F3/067G06F7/588
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,423,025
App. No.
18/674,735
Granted
Sep 23, 2025
Kind
B1
Abstract

Approaches are disclosed for managing aspects of content delivery in a multi-tenant environment. A request buffer can be used to remove correlations between requests and randomly shuffle requests without storing all the requests concurrently. A shuffle sharding algorithm can be used to randomly allocate a subset of resources to different users in order to ensure less than a maximum risk of one user impacting the use of all resources allocated to other users. In some embodiments, separate fleets of resources can be maintained for manifests and video segments to allow for more accurate scaling and customization. Multiple manifests can also be associated with a single endpoint to allow multiple media players to obtain similar content segments from the single endpoint.

Claims (42)

1. A computer-implemented method, comprising:

storing a plurality of video segments to a plurality of storage devices in a multi-tenant environment;

determining that a rate of requests being received with respect to the plurality of storage requests satisfies at least one buffering criterion;

receiving a request to perform an operation with respect to a specified segment stored to a respective device of the plurality of storage devices;

generating a random number within a range of a number of elements of a request queue;

causing, if it is determined that a previously-received request is stored to the element of the request queue corresponding to the random number, the previously-received request to be transmitted to a corresponding device of the plurality of storage devices storing a segment corresponding to the previously-received request; and

storing the received request to the element of the request queue corresponding to the random number.

2. The computer-implemented method of claim 1 , further comprising:

after the rate of requests being received no longer satisfies at least one buffering criterion, transmitting any remaining requests in the request queue to the plurality of storage devices.

3. The computer-implemented method of claim 1 , wherein the request to perform an operation is a read request, a write request, or a delete request for the specified segment.

4. The computer-implemented method of claim 1 , wherein the at least one buffering criterion corresponds to a request rate threshold, a request volume threshold, or a request traffic pattern.

5. The computer-implemented method of claim 1 , further comprising:

storing a plurality of placeholders to the elements of the request queue, the placeholders being deleted from the request buffer when received requests are to be stored to the elements to which the placeholders are stored.

6. A computer-implemented method, comprising:

receiving a request for access to a data instance stored to one of a plurality of storage locations;

selecting a random element of a request buffer to which to temporarily store the request;

determining that a previously-received request, for access to a second data instance stored to one of the plurality of storage locations, is stored to the random element;

causing the previously-received request to be pulled from the request buffer and processed to determine whether to provide access to the second data instance; and

storing the request to the random element of the request buffer.

7. The computer-implemented method of claim 6 , wherein the random element is determined using a random number, generated using a random number generator, from within a range of elements of the request buffer to which requests are able to be stored.

8. The computer-implemented method of claim 6 , wherein a number of requests received with respect to the plurality of storage locations over a period of time exceeds a range of elements of the request buffer to which requests are able to be stored, and wherein an order of transmission of received requests is able to be randomized without storing all the requests in the request buffer at any time.

9. The computer-implemented method of claim 6 , wherein storing the request and the previously-received request to randomly selected elements of the request buffer removes one or more correlations between the request and the previously-received request.

10. The computer-implemented method of claim 6 , wherein the selecting of the random element is performed in response to at least one buffering criterion being satisfied with respect to the plurality of storage locations.

11. The computer-implemented method of claim 10 , further comprising:

after the at least one buffering criterion is no longer satisfied, transmitting any remaining requests in the request buffer to the plurality of storage locations for processing.

12. The computer-implemented method of claim 6 , wherein the at least one buffering criterion corresponds to a request rate threshold, a request volume threshold, or a request traffic pattern.

13. The computer-implemented method of claim 6 , wherein the request for access is a read request, a write request, or a delete request for the data instance.

14. The computer-implemented method of claim 6 , further comprising:

storing a plurality of placeholders to the elements of the request buffer, the placeholders being deleted from the request buffer when received requests are to be stored to the elements to which the placeholders are stored.

15. The computer-implemented method of claim 6 , wherein a number of the elements in the request queue is selected to improve request throughput and storage location utilization.

16. A system, comprising:

a processor; and

a memory device including instructions that, when executed by the processor, cause the processor to:

receive a request for access to a data instance stored to one of a plurality of storage locations;

select a random element of a request buffer to which to temporarily store the request;

determine that a previously-received request, for access to a second data instance stored to one of the plurality of storage locations, is stored to the random element;

cause the previously-received request to be pulled from the request buffer and processed to determine whether to provide access to the second data instance; and

store the request to the random element of the request buffer.

17. The system of claim 16 , wherein the random element is determined using a random number, generated using a random number generator, from within a range of elements of the request buffer to which requests are able to be stored.

18. The system of claim 16 , wherein a number of requests received with respect to the plurality of storage locations over a period of time exceeds a range of elements of the request buffer to which requests are able to be stored, and wherein an order of transmission of received requests is able to be randomized without storing all the requests in the request buffer at any time.

19. The system of claim 16 , wherein storing the request and the previously-received request to randomly selected elements of the request buffer removes one or more correlations between the request and the previously-received request.

20. The system of claim 16 , wherein the selecting of the random element is performed in response to at least one buffering criterion being satisfied with respect to the plurality of storage locations.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2025
From: MCMONIGLE, CONNOR WILLIAM; ABEL, STEPHEN; BADHEKA, NANDAN BHARATKUMAR; ROSS, ADAM; BENGTSON, LUCAS LANGDON; HALL, JONATHAN RAND; HERTEL, GARY; STEWART, JARED JAMES; SPAYD, JOCELYN DANAE; KALE, MICHAEL; LIU, LIYUAN; CURTIS, MARISOL; MASTRANGELO, ALEXANDER SCOTT; WEIL, NICOLAS; LANE, NINA JEONG; RASMUSSEN, ARDEN; HAN, RUOCHEN; SINGH, SHRUTI PRAKASH; SLETMOE, KYLE; SENGUPTA, SAURAV; CALASTRY RAMESH, VINAY KUMAR; GAO, YUFEI
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 072359/0697 →
References Cited (3)
US 9727279B2 · Suzuki · 2017 [cited by examiner]
US 10762435B2 · Yang · 2020 [cited by examiner]
US 20240361912A1 · Basit · 2024 [cited by examiner]