Asynchronous and Distributed Storage of Data
First Claim
1. A method associated with asynchronous and distributed storage of data, the method comprising:
- receiving, at each storage module in a plurality of storage modules, a data file request from a delivery module;
determining, at each of the storage modules, a start location for a part of a data file associated with the data file request;
determining asynchronously, at each of the storage modules, a queue location within a scheduling queue to associate with the data file request; and
adding asynchronously, at each of the storage modules, the part of the data file to a data queue based on the queue location within the scheduling queue, a capacity of the data queue, a transmission rate associated with the data file, or any combination thereof.
3 Assignments
0 Petitions
Accused Products
Abstract
In one example, multimedia content is requested from a plurality of storage modules. Each storage module retrieves the requested parts, which are typically stored on a plurality of storage devices at each storage module. Each storage module determines independently when to retrieve the requested parts of the data file from storage and transmits those parts from storage to a data queue. Based on a capacity of a delivery module and/or the data rate associated with the request, each storage module transmits the parts of the data file to the delivery module. The delivery module generates a sequenced data segment from the parts of the data file received from the plurality of storage modules and transmits the sequenced data segment to the requester.
112 Citations
38 Claims
-
1. A method associated with asynchronous and distributed storage of data, the method comprising:
-
receiving, at each storage module in a plurality of storage modules, a data file request from a delivery module; determining, at each of the storage modules, a start location for a part of a data file associated with the data file request; determining asynchronously, at each of the storage modules, a queue location within a scheduling queue to associate with the data file request; and adding asynchronously, at each of the storage modules, the part of the data file to a data queue based on the queue location within the scheduling queue, a capacity of the data queue, a transmission rate associated with the data file, or any combination thereof. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A method associated with asynchronous and distributed storage of data, the method comprising:
-
receiving, at a first storage module, a data file request from a delivery module; determining, at the first storage module, a first start location for a first part of a data file associated with the data file request; determining, at the first storage module, a first location within a first scheduling queue to associate with the data file request; adding, at the first storage module, the first part of the data file to a first output data queue based on the first location within the first scheduling queue, a capacity of the first output data queue, a transmission rate associated with the data file, or any combination thereof; receiving, at a second storage module, the data file request from the delivery module, the second storage module being different than the first storage module; determining, at the second storage module, a second start location for a second part of the data file associated with the data file request; determining, at the second storage module, a second location to associate with the data file request, the second location being located within a second scheduling queue which is independent from the first scheduling queue; and adding, at the second storage module, the second part of the data file to a second output data queue based on the second location within the second scheduling queue, a capacity of the second output data queue, the transmission rate associated with the data file, or any combination thereof.
-
-
33. A computer program product, tangibly embodied in an information carrier, the computer program product including instructions being operable to cause a data processing apparatus to:
-
receive, at each storage module in a plurality of storage modules, a data file request from a delivery module; determine, at each of the storage modules, a start location for a part of a data file associated with the data file request; determine asynchronously, at each of the storage modules, a queue location within a scheduling queue to associate with the data file request; and add asynchronously, at each of the storage modules, the part of the data file to a data queue based on the queue location within the scheduling queue, a capacity of the data queue, a transmission rate associated with the data file, or any combination thereof.
-
-
34. A system associated with asynchronous and distributed storage of data, the system comprising:
a plurality of storage modules, each storage module comprising; a plurality of storage devices, each storage device configured to store a part of a data file; and a storage controller module connected to each of the plurality of storage devices independently and comprising; a storage queue controller module configured to determine a queue location within a scheduling queue to associate with the data file request, the scheduling queue being configured by each storage module asynchronously, and a storage device read controller module configured to; determine a start location on one of the storage devices for a part of a data file associated with the data file request, and add the part of the data file to a data queue based on a queue location within the scheduling queue, a capacity of the data queue, a transmission rate associated with the data file, or any combination thereof. - View Dependent Claims (35, 36, 37)
-
38. A system associated with asynchronous and distributed storage of data, the system comprising:
a means for storage of data comprising; a plurality of means for storing data, each means for storing data stores a part of a data file; a means connected to each of the plurality of means for storing data independently and comprising; a means for determining a queue location within a scheduling queue to associate with the data file request, the scheduling queue being configured by each storage module asynchronously, a means for determining a start location on one of the storage devices for a part of a data file associated with the data file request, and a means for adding the part of the data file to a data queue based on a queue location within the scheduling queue, a capacity of the data queue, a transmission rate associated with the data file, or any combination thereof.
Specification