1. A method for regenerating a failed storage node from a total number of storage nodes storing a file, the method comprising:
splitting the file into a plurality of file segments using a formula, B=k (n\u2212k+1), wherein B indicates the plurality of file segments, and wherein n indicates the total number of nodes, and wherein k indicates a plurality of data storage nodes of the total number of nodes (n), and wherein (n\u2212k) indicates one or more parity nodes of the total number of storage nodes (n), and wherein the total number of storage nodes (n) are capable of storing the plurality of file segments (B);
constructing an encoded matrix (M) using the plurality of file segments (B), wherein the encoded matrix (M) comprises (n\u22121) rows and n columns, wherein a column of the encoded matrix (M) represents one of a data storage node or a parity node, and wherein the encoded matrix (M) is,
M
=
(
R
(
k
–
1
)
\xd7
k
D
k
\xd7
(
n
–
k
)
T
D
(
n
–
k
)
\xd7
k
S
(
n
–
k
–
1
)
\xd7
(
n
–
k
)
)
(
n
–
1
)
\xd7
n
,
and wherein R(k\u22121)\xd7k, D(n\u2212k)\xd7k and DTk\xd7(n\u2212k) indicate sub-matrices comprising the plurality of file segments (B), and wherein R(k\u22121)\xd7k is a cyclic matrix, and wherein S(n\u2212k\u22121)\xd7(n\u2212k) indicates a parity matrix formed by performing an XOR operation on the plurality of file segments (B);
distributing the plurality of file segments (B) on the total number of storage nodes (n) based on the matrix (M), such that each storage node of the total number of nodes (n) is configured to store (n\u22121) file segments; and
regenerating at least one file segment stored on the failed storage node upon identifying the failed node, wherein at least one file segment is regenerated by using at least one other file segment based on the matrix (M), and wherein at least one other file segment corresponds to remaining nodes (n\u22121) of the total number of nodes (n), and wherein the regenerating at least one file segment from each of the remaining nodes (n\u22121) facilitates the regeneration of the failed storage node, and wherein the splitting, the encoding, the distributing and the regenerating are performed by a processor.
2. The method of claim 1, wherein the plurality of data storage nodes (k)>2 and is equal to (n\u22122).
3. The method of claim 1, wherein the one or more parity nodes (n\u2212k) is 2.
4. The method of claim 1, wherein the failed storage node is at least one of the data storage node and the parity node.
5. The method of claim 1, wherein the R(k\u22121)\xd7k comprises one or more file segments of the plurality of file segments (B), wherein the one or more file segments are distributed in a cyclic manner.
6. The method of claim 5, wherein the D(n\u2212k)\xd7k comprises file segments other than the one or more file segments.
7. The method of claim 1, wherein the DTk\xd7(n\u2212k) is a transpose matrix of the D(n\u2212k)\xd7k.
8. A system for regenerating a failed storage node from a total number of storage nodes storing a file, the system comprising:
a processor; and
a memory coupled to the processor, wherein the processor is capable of executing instructions stored in the memory, and wherein the instructions comprising:
splitting the file into a plurality of file segments using a formula, B=k (n\u2212k+1), wherein B indicates the plurality of file segments, and wherein n indicates the total number of nodes, and wherein k indicates a plurality of data storage nodes of the total number of nodes (n), and wherein (n\u2212k) indicates one or more parity nodes of the total number of storage nodes (n), and wherein the total number of storage nodes (n) are capable of storing the plurality of file segments (B);
constructing an encoded matrix (M) using the plurality of file segments (B), wherein the encoded matrix (M) comprises (n\u22121) rows and n columns, wherein a column of the encoded matrix (M) represents one of a data storage node or a parity node, and wherein the encoded matrix (M) is,
M
=
(
R
(
k
–
1
)
\xd7
k
D
k
\xd7
(
n
–
k
)
T
D
(
n
–
k
)
\xd7
k
S
(
n
–
k
–
1
)
\xd7
(
n
–
k
)
)
(
n
–
1
)
\xd7
n
,
and wherein R(k\u22121)\xd7k, D(n\u2212k)\xd7k and DTk\xd7(n\u2212k) indicate sub-matrices comprising the plurality of file segments (B), and wherein R(k\u22121)\xd7k is a cyclic matrix, and wherein S(n\u2212k\u22121)\xd7(n\u2212k) indicates a parity matrix formed by performing an XOR operation on the plurality of file segments (B);
distributing the plurality of file segments (B) on the total number of storage nodes (n) based on the matrix (M), such that each storage node of the total number of nodes (n) is configured to store (n\u22121) file segments; and
regenerating at least one file segment stored on the failed storage node upon identifying the failed node, wherein at least one file segment is regenerated by using at least one other file segment based on the matrix (M), and wherein at least one other file segment corresponds to remaining nodes (n\u22121) of the total number of nodes (n), and wherein the regenerating at least one file segment from each of the remaining nodes (n\u22121) facilitates the regeneration of the failed storage node.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method of sharing media content among families of broadcast stations, the method comprising:
receiving information relating to media content from families of broadcast stations;
storing the information such that the information is accessible to at least two of the families of broadcast stations via a computer network;
receiving a query for specific media content from a broadcast station that is a member of a first family of broadcast stations, the specific media content being associated with a second family of broadcast stations that is different from the first family;
searching the stored information in accordance with the query to identify the specific media content; and
enabling the broadcast station to access to the specific media content if the specific media content is identified among the stored information.
2. The method of claim 1, wherein the information identifies media content by family of broadcast station and by one or more attributes of the media content.
3. The method of claim 2, wherein the one or more attributes comprises at least one of a title associated With the media content, an artist associated with the media content, notes associated with the media content, a composer associated with the media content, a producer associated with the media content, a category associated with the media content, a type number associated with the media content, an advertiser number associated with the media content and user-defined custom information.
4. The method of claim 3, further comprising;
generating a graphical user interface (GUI) comprising one or more fields;
wherein the query corresponds to information contained in the one or more fields of the GUI.
5. The method of claim 1, further comprising:
generating a graphical user interface (GUI) comprising one or more options for accessing the specific media content;
wherein enabling comprises;
receiving a selection corresponding to the one or more options; and
instructing a broadcast station that stores the specific media content to provide the specific media content to the broadcast station that issued the query.
6. The method of claim 5, wherein the one or more options comprise:
an option to obtain the specific media content immediately; and
an option to obtain the media content at a predefined time.
7. The method of claim 1, wherein the media content comprises music from the families of broadcast stations; and
wherein the media content is stored in one or more repositories that are communicatively coupled to the network.
8. The method of claim 1, wherein the broadcast stations comprise radio stations, and the method is performed at one or more computer systems that are separate from the families of broadcast stations.
9. A method of sharing media content among families of broadcast stations, the method comprising:
receiving information relating to media content for families of broadcast stations;
storing the information such that the information is accessible to at least one of the families of broadcast stations via a computer network;
receiving a query for specific media content from a broadcast station that is a member of a first family of broadcast stations, the specific media content being associated with a second family of broadcast stations that is different from the first family;
searching the information in accordance with the query to identify a location of the specific media content;
obtaining the specific media content from the location; and
providing the specific media content to the broadcast station.
10. The method of claim 9, further comprising;
generating a graphical user interface (GUI) comprising one or more fields;
wherein the query corresponds to information contained in the one or more fields of the GUI.
11. The method of claim 9, wherein the method is performed at a central server and the location of the specific media content comprises one or more servers that are remote from the central server, the one or more servers being communicatively coupled to the central server via one or more computer networks.
12. The method of claim 9, wherein the broadcast stations comprise radio stations, and the method is performed at one or more computer systems that are associated with a broadcast station that is a member of the second family.
13. A computing device comprising a computer program product stored on a computer readable medium, the stored computer program product including executable instructions for use in sharing media content among families of broadcast stations, the executable instructions for causing the computing device to perform functions comprising:
receiving information relating to media content from families of broadcast stations;
storing the information such that the information is accessible to at least two of the families of broadcast stations via a computer network;
receiving a query for specific media content from a broadcast station that is a member of a first family of broadcast stations, the specific media content being associated with a second family of broadcast stations that is different from the first family;
searching the stored information in accordance with the query to identify the specific media content; and
enabling the broadcast station to access to the specific media content if the specific media content is identified among the stored information.
14. The computing device of claim 13, wherein the information identifies media content by family of broadcast station and by one or more attributes of the media content.
15. The computing device of claim 14, wherein the one or more attributes comprises at least one of a title associated with the media content an artist associated with the media content, notes associated with the media content, a composer associated with the media content, a producer associated with the media content, a category associated with the media content, a type number associated with the media content, an advertiser number associated with the media content, and user-defined custom information.
16. The computing device of claim 15, further comprising executable instructions for causing the computing device to perform functions comprising:
generating a graphical user interface (GUI) comprising one or more fields;
wherein the query corresponds to information contained in the one or more fields of the GUI.
17. The computing device of claim 13, further comprising executable instructions for causing the computing device to perform functions comprising:
generating a graphical user interface (GUI) comprising one or more options for accessing the specific media content;
wherein enabling comprises;
receiving a selection corresponding to the one or more options; and
instructing a broadcast station that stores the specific media content to provide the specific media content to the broadcast station that issued the query.
18. The computing device of claim 17, wherein the one or more options comprise:
an option to obtain the specific media content immediately; and
an option to obtain the media content at a predefined time.
19. The computing device of claim 13, wherein the media content comprises music from the families of broadcast stations; and
wherein the media content is stored in one or more repositories that are communicatively coupled to the network.
20. The computing device of claim 13, wherein the broadcast stations comprise radio stations, and the computing device is resident at one or more computer systems that are separate from the families of broadcast stations.
21. A computing device comprising a computer program product stored on a computer readable medium, the stored computer program product including executable instructions for use in sharing media content among families of broadcast stations, the executable instructions for causing the computing device to perform functions comprising;
receiving information relating to media content for families of broadcast stations;
storing the information such that the information is accessible to at least one of the families of broadcast stations via a computer network;
receiving a query for specific media content from a broadcast station that is a member of a first family of broadcast stations, the specific media content being associated with a second family of broadcast stations that is different from the first family;
searching the information in accordance with the query to identify a location of the specific media content;
obtaining the specific media content from the location; and
providing the specific media content to the broadcast station.
22. The computing device of claim 21, further comprising executable instructions for causing the computing device to perform functions comprising;
generating a graphical user interface (GUI) comprising one or more fields;
wherein the query corresponds to information contained in the one or more fields of the GUI.
23. The computing device of claim 21, wherein the computing device is resident at a central server and the location of the specific media content comprises one or more servers that are remote from the central server, the one or more servers being communicatively coupled to the central server via one or more computer networks.
24. The computing device of claim 21, wherein the broadcast stations comprise radio stations, and the computing device is resident at one or more computer systems that are associated with a broadcast station that is a member of the second family.
25. The method of claim 9, further comprising:
receiving other media content from another broadcast station among the families of broadcast stations; and
screening the other media content in accordance with one or more predefined rules.
26. The method of claim 9, further comprising:
receiving other media content from another broadcast station among the families of broadcast stations, the other media content having metadata associated therewith; and
changing the metadata.
27. The computing device of claim 21, further comprising executable instructions for causing the computing device to perform functions comprising:
receiving other media content from another broadcast station among the families of broadcast stations; and
screening the other media content in accordance with one or more predefined rules.
28. The computing device of claim 21, further comprising executable instructions for causing the computing device to perform functions comprising:
receiving other media content from another broadcast station among the families of broadcast stations, the other media content having metadata associated therewith; and
changing the metadata.