Cluster server apparatus
First Claim
1. A cluster server apparatus for distributing streaming data continuously in time in response to requests from a plurality of terminals which are connected to said cluster server apparatus through a network, said cluster server apparatus comprising:
- first to n-th cache servers, where n is an integer greater than or equal to two, said first to n-th cache servers each being operable to distribute streaming data to the terminals corresponding to the requests from the terminals;
a load-distribution server operable to receive a request sent from one of the terminals, and to transfer the request to one of said first to n-th cache servers based on whether streaming data corresponding to the request is stored in said first to n-th cache servers or not and states of streaming data distribution of each of said first to n-th cache servers; and
a content server having a storage unit operable to store the streaming data, said content server being operable to output, to one of said first to n-th cache servers, the streaming data corresponding to a request for streaming data distribution from one of said first to n-th cache servers; and
each of said first to n-th cache servers comprising;
a streaming data storage unit operable to store the streaming data output from said content server;
a request transfer unit operable to receive the request transferred from said load-distribution server, wherein when the streaming data corresponding to the request is stored in said streaming data storage unit, said request transfer unit is operable to output an instruction for distributing the streaming data stored in said streaming data storage unit, and when the streaming data corresponding to the request is not stored in said streaming data storage unit, said request transfer unit is operable to transfer the request to said content server to thereby retrieve the streaming data corresponding to the request, to store the streaming data retrieved from said content server in said streaming data storage unit, and to output the instruction for distributing the streaming data stored in said streaming data storage unit;
a data distribution unit operable to distribute the streaming data stored in said streaming data storage unit to the one of the terminals which sent the request based on the instruction output from said request transfer unit; and
a cache control unit operable to control the streaming data output from said content server to be redundantly stored in said streaming data storage unit of at least one other predetermined cache server among said first to n-th cache servers, wherein when the streaming data is stored in said streaming data storage unit of an i-th cache server, where i is an integer greater than or equal to one and less than n, said cache control unit of said i-th cache server is operable to control the streaming data to be redundantly stored in said streaming data storage unit of an (i
1)-th cache server, and when the streaming data is stored in said streaming data storage unit of said n-th cache server, said cache control unit of said n-th cache server is operable to control the streaming data to be redundantly stored in said streaming data storage unit of said first cache server.
3 Assignments
0 Petitions
Accused Products
Abstract
A cluster server apparatus operable to continuously carrying out data distribution to terminals even if among a plurality of cache servers of the cluster server apparatus cache server, while optimally distributing loads on the plurality of cache servers. A cluster control unit of the cluster server apparatus distributes requests from the terminals based on the load of each of the plurality of cache servers. A cache server among the plurality of cache servers distributes, requested data (streaming data) to a terminal if the requested data is stored in a streaming data storage unit of the cache server, while distributing data from a content server the requested data if it is not stored in the streaming data storage unit. The data distributed from the content server is redundantly stored in the respective streaming data storage units of two or more cache servers. One cache server detects the state of distribution of the other cache server that stores the same data as that stored in the one cache server. If the one cache server becomes unable to carry out distribution, the other cache server continues data distribution instead.
200 Citations
41 Claims
-
1. A cluster server apparatus for distributing streaming data continuously in time in response to requests from a plurality of terminals which are connected to said cluster server apparatus through a network, said cluster server apparatus comprising:
-
first to n-th cache servers, where n is an integer greater than or equal to two, said first to n-th cache servers each being operable to distribute streaming data to the terminals corresponding to the requests from the terminals;
a load-distribution server operable to receive a request sent from one of the terminals, and to transfer the request to one of said first to n-th cache servers based on whether streaming data corresponding to the request is stored in said first to n-th cache servers or not and states of streaming data distribution of each of said first to n-th cache servers; and
a content server having a storage unit operable to store the streaming data, said content server being operable to output, to one of said first to n-th cache servers, the streaming data corresponding to a request for streaming data distribution from one of said first to n-th cache servers; and
each of said first to n-th cache servers comprising;
a streaming data storage unit operable to store the streaming data output from said content server;
a request transfer unit operable to receive the request transferred from said load-distribution server, wherein when the streaming data corresponding to the request is stored in said streaming data storage unit, said request transfer unit is operable to output an instruction for distributing the streaming data stored in said streaming data storage unit, and when the streaming data corresponding to the request is not stored in said streaming data storage unit, said request transfer unit is operable to transfer the request to said content server to thereby retrieve the streaming data corresponding to the request, to store the streaming data retrieved from said content server in said streaming data storage unit, and to output the instruction for distributing the streaming data stored in said streaming data storage unit;
a data distribution unit operable to distribute the streaming data stored in said streaming data storage unit to the one of the terminals which sent the request based on the instruction output from said request transfer unit; and
a cache control unit operable to control the streaming data output from said content server to be redundantly stored in said streaming data storage unit of at least one other predetermined cache server among said first to n-th cache servers, wherein when the streaming data is stored in said streaming data storage unit of an i-th cache server, where i is an integer greater than or equal to one and less than n, said cache control unit of said i-th cache server is operable to control the streaming data to be redundantly stored in said streaming data storage unit of an (i
1)-th cache server, andwhen the streaming data is stored in said streaming data storage unit of said n-th cache server, said cache control unit of said n-th cache server is operable to control the streaming data to be redundantly stored in said streaming data storage unit of said first cache server.
-
-
2. The cluster server apparatus according to claim 1, wherein
when the streaming data corresponding to the request is not stored in said streaming data storage unit of one of said first to n-th cache servers, said cache control unit of said one of said first to n-th cache servers is operable to change a sender address of the request to be transferred to said content server into a predetermined multicast address for transmission to said content server, and when said cache control unit of said one of said first to n-th cache servers receives the streaming data destined for the predetermined multicast address, said cache control unit of said one of said first to n-th cache servers is operable to control the streaming data to be stored in said streaming data storage unit of said one of said first to n-th cache servers.
-
3. The cluster server apparatus according to claim 1, wherein when the streaming data corresponding to the request is not stored in said streaming data storage unit of said i-th cache server, said cache control unit of said i-th cache server is operable to transmit, to said content server, the request for streaming data distribution to addresses of said i-th cache server and said (i 1)-th cache server.
-
4. The cluster server apparatus according to claim 1, wherein said load-distribution server is operable to transfer the requests to said first to n-th cache servers so that a number of distributable streams for each of said first to n-th cache servers is less than or equal to a value (n−
- 1)/n)×
MAX, where MAX is a maximum number of distribution streams that each of said first to n-th cache servers are operable to distribute, and a total number of distribution streams of the streaming data stored in said streaming data storage units of said i-th cache server and said (i
1)-th cache server is equal to or less than MAX.
- 1)/n)×
-
5. The cluster server apparatus according to claim 1, wherein said load-distribution unit is operable to transfer the requests to said first to n-th cache servers so that the total number of distribution streams of the streaming data stored in said streaming data storage units of said i-th cache server and said (i 1)-th cache server is equal to or less than MAX, where MAX is a maximum number of distribution streams that each of said cache servers can distribute, and a total number of distribution streams of the streaming data stored in said streaming data storage units of an (i−
- 1)-th cache server and said i-th cache server is equal to or less than MAX.
-
6. The cluster server apparatus according to claim 1, wherein
said data distribution unit of said i-th cache server is operable to notify said (i 1)-th cache server and said (i− - 1)-th cache server that redundantly store the streaming data stored in said i-th cache server of distribution information of said i-th cache server at regular intervals, the distribution information corresponding to the streaming data being distributed by said i-th cache server to the one of the terminals which sent the request, and
said i-th cache server further comprises a distribution-disabled detection unit operable to detect, through a distribution information received from said (i
1)-th cache server and said (i−
1)-th cache server, whether either one or both of said (i
1)-th cache server and (i−
1)-th cache server become unable to carry out distribution of the streaming data, and to provide an instruction to said data distribution unit of said i-th cache server to instead distribute, within a predetermined period for avoiding interruption of distribution of the streaming data, streaming data that succeeds the streaming data most recently distributed by either or both of said (i
1) cache server and said (i−
1)-th cache sever when either or both of said (i
1) cache server and said (i−
1)-th cache sever become unable to carry out distribution of the streaming data.
- 1)-th cache server that redundantly store the streaming data stored in said i-th cache server of distribution information of said i-th cache server at regular intervals, the distribution information corresponding to the streaming data being distributed by said i-th cache server to the one of the terminals which sent the request, and
-
7. The cluster server apparatus according to claim 6, wherein when said data distribution unit of said i-th cache server distributes, instead of either of said (i 1)-th cache server and said (i−
- 1)-th cache server either or both of said (i
1) cache server and said (i−
1)-th cache sever become unable to carry out the distribution of the streaming data, the streaming data to the one of the terminals which sent the request of the streaming data by following the instruction provided by said distribution-disabled detection unit of said i-th cache server,said cache control unit of said i-th cache server is operable to control new streaming data from being stored in said streaming data storage unit of said i-th cache server.
- 1)-th cache server either or both of said (i
-
8. The cluster server apparatus according to claim 6, wherein
when one of said first-to-nth cache servers which became unable to carry out the distribution of the streaming data recovers from being unable to carry out the distribution of the streaming data, said one of said first-to-nth cache servers which recovered is operable to output a recovery notification to said data distribution unit of another one of said first-to-nth cache servers which redundantly stored the streaming data stored in said streaming data storage unit of said one of said first to n-th cache servers, and when receiving the recovery notification from said one of said first to n-th cache servers, said another one of said first to n-th cache servers, which distributed the streaming data to the one of the terminals which sent the request instead of said one of said first to n-th cache servers when said one of said first to n-th cache servers became unable to carry out the distribution of the streaming data, is operable to copy the streaming data stored in said streaming data storage unit of said another one of said first to n-th cache servers to said streaming data storage unit of said one of said first to n-th cache servers.
-
9. The cluster server apparatus according to claim 8, wherein
each of said first to n-th cache servers further comprises a recovery detection unit operable to detect whether said one of said first to n-th cache severs which became unable to carry out distribution of the streaming data recovers from being unable to carry out distribution of the streaming data, when said one of said first to n-th cache servers recovers from being unable to carry out distribution of the streaming data, said recovery detection unit of said one of said first to n-th cache servers is operable to provide a recovery notification to said another one of said first to n-th cache servers, and to instruct said data distribution unit of said one of said first to n-th cache servers to instead distribute the streaming data that succeeds the streaming data that has been distributed by said another one of said first to n-th cache servers, and said recovery detection unit of said another one of said first to n-th cache servers is operable to instruct said data distribution unit of said another one of said first to n-th cache servers to stop the distribution of the streaming data that has been distributed by said another one of said first to n-th cache servers instead of said one of said first to n-th cache servers when said one of said first to n-th cache servers became unable to carry out the distribution of the streaming data.
-
10. The cluster server apparatus according to claim 9, wherein
when said another one of said first to n-th cache servers that is carrying out distribution of the streaming data exceeds the maximum number of distribution streams which said another one of said cache servers is operable to distribute, said recovery detection unit of said another one of said first to n-th cache servers is operable to instruct said data distribution unit of said another one of said first to n-th cache servers to stop distribution of the streaming data that has been distributed by said another one of said first to n-th cache servers instead of by said one of said first to n-th cache servers when said one of said first to n-th cache servers became unable to carry out distribution of the streaming data, and to instruct said data distribution unit of a still another one of said first to n-th cache servers to distribute the streaming data that succeeds the streaming data that has been distributed by said another one of said first to n-th cache servers, and when said one of said first to n-th cache servers recovers from being unable to carry out the distribution of the streaming data, said recovery detection unit of said another one of said first to n-th cache servers is operable to provide the recovery notification to said still another one of said first to n-th cache servers, and said recovery detection unit of said still another one of said first to n-th cache servers is operable to instruct said data distribution unit of said still another one of said first to n-th cache servers to stop distributing the streaming data that has been distributed by said still another one of said first to n-th cache servers instead of said another one of said first to n-th cache servers.
-
11. The cluster server apparatus according to claim 1, wherein each of said first to n-th cache servers further comprises:
-
a session management unit operable to manage a session, which indicates an execution of distributing the streaming data to the one of the terminals which sent the request through the network, a packet most recently transmitted by said data distribution unit in each session, and a number of distribution streams of the streaming data; and
a distribution-disabled detection unit operable to regularly transmit to and receive from said at least one other predetermined cache server among said first to n-th cache servers which redundantly stores the streaming data stored in said streaming data storage unit of said cache server a notification corresponding to packets for all sessions managed by said session management unit, and when one of said first to n-th cache servers ceases to send the notification for a predetermined time period, said distribution-disabled detection unit of said cache server is operable to determine that said one of said first to n-th cache servers which ceased to send the notification becomes unable to carry out distribution of the streaming data, and to provide an instruction to said data distribution unit of another one of said first to n-th cache servers that redundantly stores the streaming data stored in said one of said first to n-th cache servers, to instead distribute, within a predetermined period for avoiding an interruption of the distribution of the streaming data, a packet that succeeds the packet identified by the notification most recently received for sessions of the redundantly-stored streaming data among sessions managed by said one of said first to n-th cache servers which became unable to carry out the distribution of the streaming data.
-
-
12. The cluster server apparatus according to claim 11, wherein
when said one of said first to n-th cache servers becomes unable to carry out the distribution of the streaming data and a response from said session management unit of said cache server shows that a number of distribution streams exceeds a maximum number of distribution streams that said cache server is operable to distribute, said distribution-disabled detection unit of said another one of said first to n-th cache servers is operable to provide an overflow notification to still another one of said first to n-th cache servers that redundantly stores the streaming data stored in said streaming data storage unit of said one of said first to n-th cache severs and said streaming data storage unit of said another one of said first to n-th cache servers, and to instruct said data distribution unit of said another one of said first to n-th cache servers to stop distributing streaming data exceeding the maximum number of distribution streams, and said distribution-disabled detection unit of said still another one of said first to n-th cache servers is operable to receive the overflow notification from one of said first to n-th cache servers, and upon receipt of the overflow notification, to instruct said data distribution unit of said still another one of said first to n-th cache servers to distribute a packet that succeeds the packet identified by a notification most recently received for streaming data exceeding the maximum number of distribution streams of which said another one of said first to n-th cache servers stops distributing.
-
13. The cluster server apparatus according to claim 11, wherein
each of said first to n-th cache servers further comprises a distribution recovery unit operable to detect whether or not said one of said first to n-th cache servers recovers from being unable to carry out the distribution of the streaming data, when said one of'"'"'said first to n-th cache servers recovers from being unable to carry out the distribution of the streaming data, said cache control unit of said one of said first to n-th cache servers is operable to provide a recovery notification to said data distribution unit of another one of said cache first to n-th cache servers that redundantly stores the streaming data stored in said streaming data storage unit of said one of said first to n-th cache servers, and to copy the streaming data stored in said streaming data storage unit of said another one of said first to n-th cache servers to said streaming data storage unit of said one of said first to n-th cache servers, and wherein, after said cache control unit of said one of said first to n-th cache servers completes the copy of the streaming data to said streaming data storage unit of said one of said first to n-th cache servers, said recovery detection unit of said one of said first to n-th cache servers is operable to provide a recovery notification to said another one of said first to n-th cache servers, and to instruct said data distribution unit of said one of said first to n-th cache servers to start distributing a packet that succeeds the packet identified by a packet identifier most recently transmitted in the streaming data that has been distributed instead by said another one of said first to n-th cache servers when said one of said first to n-th cache servers became unable to carry out the distribution of the streaming data, and said recovery detection unit of said another one of said first to n-th cache servers is operable to instruct said data distribution unit of said another one of said first to n-th cache servers to stop distribution of the streaming data that has been distributed said another one of said first to n-th cache servers instead of by said one of said first to n-th cache servers when said one of said first to n-th cache servers became unable to carry out the distribution of the streaming data.
-
14. The cluster server apparatus according to claim 13, wherein
when said another one of said first to n-th cache servers carrying out the distribution of streaming data instead of said one of said first to n-th cache servers exceeds a maximum number of distribution streams which said another one of said first to n-th cache servers is operable to distribute, said recovery detection unit of said another one of said first to n-th cache servers is operable to instruct said data distribution unit of said another one of said first to n-th cache servers to stop distribution of the streaming data that has been distributed by said another one of said first to n-th cache servers instead of by said one of said first to n-th cache servers when said one of said first to n-th cache servers became unable to carry out the distribution of the streaming data, and to instruct said data distribution unit of a still another one of said first to n-th cache servers to distribute the streaming data that succeeds the streaming data that has been distributed by said another one of said first to n-th cache servers before said recovery detection unit of said another one of said first to n-th cache servers instructed said data distribution unit of said another one of said first to n-th cache servers to stop distribution of the streaming data; - and
when said one of said first to n-th cache servers recovers from being unable to carry out the distribution of the streaming data, said recovery detection unit of said another one of said first to n-th cache servers is operable to provide the recovery notification to said still another one of said first to n-th cache servers, and to instruct said data distribution unit of said one of said first to n-th cache servers to start distributing the packet that succeeds the packet identified by the packet identifier most recently transmitted in the streaming data that has been distributed by said still another one of said first to n-th cache servers, and said recovery detection unit of said still another one of said first to n-th cache servers is operable to instruct said data distribution unit of said still another one of said first to n-th cache servers to stop the distribution of the streaming data that has been distributed by said still another one of said first to n-th cache servers instead of said another one of said first to n-th cache servers.
- and
-
15. The cluster server apparatus according to claim 1, wherein each of said first to n-th cache servers further comprises:
-
a session management unit operable to manage a session identifier for identifying a session, which indicates an execution of distributing the streaming data to the one of the terminals which sent the request through the network, a packet identifier for identifying a packet most recently transmitted by said data distribution unit for each session, a session management table for storing said session identifier and said packet identifier, a table boundary value for dividing the session management table into two based on said session identifier, and a number of distribution streams of the streaming data; and
a distribution-disabled detection unit operable to regularly transmit to and receive from said at least one other predetermined cache server which redundantly stores the streaming data stored in said streaming data storage unit of one of said first to n-th cache servers a notification corresponding to session identifiers and packet identifiers for all of the sessions in which the streaming data managed by said session management unit of said one of said first to n-th cache servers are being distributed, and to update, according to the notification received by said at least one other predetermined cache server, said session identifier and said packet identifier stored in the session management table, wherein said session management unit is operable to set said session identifier of the session for the streaming data being distributed by said data distribution unit of said cache server to a value smaller than or equal to the table boundary value, and to set said session identifier of the session for the streaming data being distributed by said data distribution units of said first to n-th cache servers other than said cache server to a value larger than the table boundary value, said data distribution unit of said cache server is operable to repeatedly distribute the packet to the one of the terminals which sent the request and to update said packet identifier when said session identifier is smaller than or equal to the table boundary value in all of the sessions, and when one of said first to n-th cache servers ceases to send the notification for a predetermined time period, said distribution-disabled detection unit of said cache server is operable to determine that said one of said first to n-th cache servers which ceased to send the notification becomes unable to carry out distribution of the streaming data, and to set the table boundary value to a value larger than a maximum value of said session identifier within a predetermined period for avoiding an interruption of the distribution of the streaming data.
-
-
16. The cluster server apparatus according to claim 15, wherein
each of said at least one other predetermined cache server among said first to n-th cache servers which redundantly stores the streaming data stored in said streaming data storage unit of said cache server includes a session management table in which a maximum number of registerable sessions is MAX, where MAX is a maximum number of distribution streams that each of said at least one other predetermined cache server among said first to n-th cache servers is operable to distribute, each of said session management units of each of said first to n-th cache servers is operable to set its respective session identifier to a value smaller than the table boundary value for the session of the streaming data being distributed by its respective data distribution unit, and to set said session identifier of each other one of said first to n-th cache servers to a value larger than the table boundary value for the session of the streaming data being distributed by said data distribution unit of said each other one of said first to n-th cache servers, wherein each of said session management units of each of said first to n-th cache servers sets respective session identifiers I1-In that are smaller than the table boundary value in the session management table in said each other one of said first to n-th cache servers to values of (MAX-I1 − - 1) to (MAX-In −
1), respectively, so as to set said session identifiers I1-In to a value larger than the table boundary value for the session of the streaming data being distributed by said data distribution unit of said each other one of said first to n-th cache servers, andsaid distribution-disabled unit of each of said first to n-th cache servers is operable to update, according to the notification received by said each other one of said first to n-th cache servers, values in the session management table to the values (MAX-I1−
1) to (MAX-In−
1) of said session identifiers included in the notification and values of packet identifiers P1 to Pn, and when the table boundary value is changed to F, to set the table boundary value to MAX-F.
- 1) to (MAX-In −
-
17. The cluster server apparatus according to claim 16, wherein said each of said first to n-th cache servers further comprises a distribution recovery unit operable to detect whether said one of said first to n-th cache servers which has become unable to carry out the distribution of the streaming data recovers from being unable to carry out the distribution of the streaming data;
-
wherein when said one of said first to n-th cache servers recovers from being unable to carry out the distribution of the streaming data, said cache control unit of said one of said first to n-th cache servers is operable to provide a recovery notification to said data distribution unit of said at least one other predetermined cache server among said first to n-th cache servers that redundantly stores the streaming data stored in said streaming data storage unit of said one of said first to n-th cache servers, and to copy the streaming data stored in said streaming data storage unit of said at least one other predetermined cache server among said first to n-th cache servers, which instead distributed the streaming data to the one of the terminals which sent the request when said one of said first to n-th cache servers became unable to carry out distribution of the streaming data, to said streaming data storage unit of said one of said first to n-th cache servers which has recovered; and
wherein when said cache control unit of said one of said first to n-th cache servers completes the copy of the streaming data, said recovery detection unit of said one of said first to n-th cache servers is operable to provide a recovery notification to said at least one other predetermined cache server among said first to n-th cache servers, and to set the table boundary value of said one of said first to n-th cache servers back to a value which existed before said one of said first to n-th cache servers became unable to carry out the distribution of the streaming data, and said recovery detection unit of said at least one other predetermined cache server among said first to n-th cache servers is operable to set the table boundary value back to a value of the table boundary value of said at least one other predetermined cache server among said first to n-th cache servers which existed before said one of said first to n-th cache servers became unable to carry out distribution.
-
-
18. The cluster server apparatus according to claim 15, wherein
when a streaming data set S1 stored in both a cache server A and a cache server B among said first to n-th cache servers and a streaming data set S2 stored in both said cache server A and a cache server C among said first to n-th cache servers are stored in said streaming data storage unit of said cache server A, said cache server A has session management tables T0 and T1 and table boundary values F0 and F1 at which the session management tables T0 and T1 are divided into two based on said session identifier of said cache server A, wherein in said session management table T0, said session identifier is set to a value smaller than the table boundary value F0 for the session of the streaming data included in the streaming data set S1 being distributed by said cache server A, while said session identifier is set to a value larger than the table boundary value F1 for the session of the streaming data included in the streaming data set S1 being distributed by said cache server B, wherein said session management unit of said 1463 cache server A sets session identifiers I1-In that are smaller than the table boundary value F1 to one of values (MAX-I1− - 1) to (MAX-In−
1), respectively, where MAX is the maximum number of distribution streams that each of said cache servers A to C is operable to distribute, in said session management table of said cache server B so as to set said I1-In session identifiers to a value larger than the table value boundary value F1 for the session of the streaming data set S1 being distributed by said cache server B,in said session management table T1, said session identifier is set to a value smaller than the table boundary value F1 for the session of the streaming data included in the streaming data set S2 being distributed by said cache server A, while said session identifier is set to a value larger than the table boundary value F0 for the session of the streaming data included in the streaming data set S2 being distributed by said cache server C, wherein said session management unit of said cache server A sets session identifiers J1-Jn that are smaller than the table value boundary value F1 to one of values (MAX-J1−
1) to (MAX-Jn−
1), respectively, in said management unit table of said cache server C so as to set said J1-Jn session identifiers to a value larger than the table boundary value F1 for the session of the streaming data set S2 being distributed by said cache server C,wherein in said cache server A, said distribution-disabled detection unit is operable to;
transmit a notification indicating said session identifier and said packet identifier for all sessions of the streaming data being distributed to said cache servers B and C by making an inquiry to said session management unit of said cache servers B and said session management unit of said cache server C, and receive the notification from said cache servers B and C;
set the table boundary value F0 to a value equal to or larger than MAX when no notification comes from said cache server B, and set the table boundary value F1 to a value equal to or larger than MAX when no notification comes from said cache server C;
when the number of distribution streams exceeds the maximum number of distribution streams, set the table boundary value F1 to a value smaller than the maximum number of distribution streams if no notification comes from said cache server B, and set the table boundary value F0 to a value smaller than the maximum number of distribution streams if the notification comes from said cache server C.
- 1) to (MAX-In−
-
19. The cluster server apparatus according to claim 18, wherein each of said first to n-th cache servers further comprises a distribution recovery unit operable to detect whether said one of said first to n-th cache servers which has become unable to carry out distribution of the streaming data recovers from being unable to carry out distribution of the streaming data;
-
wherein when said one of said first to n-th cache servers recovers from being unable to carry out distribution of the streaming data, said cache control unit of said one of said first to n-th cache servers is operable to provide a recovery notification to said data distribution unit of said cache server A, which redundantly stores the streaming data stored in said streaming data storage unit of said one of said first to n-th cache servers, and to copy the streaming data stored in said streaming data storage unit of said cache server A, which instead distributed the streaming data to the one of the terminals which sent the request when said one of said first to n-th cache servers became unable to carry out distribution of the streaming data, to said streaming data storage unit of said one of said first to nth cache servers;
wherein when said cache control unit of said one of said first to n-th cache servers completes the copy of the streaming data by providing a recovery notification to said cache server A, said recovery detection unit of said one of said first to n-th cache servers is operable to set the table boundary value of said one of said first to n-th cache servers back to a value which existed before said one of said first to n-th cache servers became unable to carry out the distribution of the streaming data; and
wherein when the table boundary value of said one of said first to n-th cache servers is set to the value which existed before said one of said first to n-th cache servers became unable to carry out the distribution of the streaming data, said recovery detection unit of said cache server A is operable to set the table boundary values F0 and F1 back to values which existed before said one of said first to n-th cache servers became unable to carry out the distribution.
-
-
20. The cluster server apparatus according to claim 1, wherein each of said first to n-th cache servers further comprises:
-
a session management unit operable to manage-a number of distribution streams of the streaming data distributed by said data distribution unit; and
a distribution-disabled detection unit operable to detect whether one of said first to n-th cache servers becomes unable to carry out distribution of the streaming data, and to instruct said data distribution unit to instead distribute the streaming data that succeeds the streaming data most recently distributed by said one of said first to n-th cache servers before said one of said first to n-th cache servers became unable to carry out the distribution of the streaming data;
whereinsaid distribution-disabled detection unit is operable to provide an overflow notification to another one of said first to n-th cache servers that redundantly stores the streaming data stored in said streaming data storage unit of said cache server and streaming data storage unit of said one of said first to n-th cache servers, and to instruct said data distribution unit to stop distributing streaming data that exceeds a maximum number of permissible distribution streams, and upon receiving the overflow notification from said distribution-disabled detection unit of said cache server, said distribution-disabled detection unit of said another one of said first to n-th cache servers is operable to instruct said data distribution unit of said another one of said first to n-th cache servers to transmit streaming data that succeeds the streaming data most recently distributed by said cache server for all streaming data that exceeds the maximum number of permissible distribution streams that said cache server stopped distributing.
-
-
21. The cluster server apparatus according to claim 1, wherein the streaming data is moving-picture data.
-
22. The cluster server apparatus according to claim 1, wherein said (i 1)-th cache server is an adjacent cache server to said i-th cache server, and said n-th cache server is an adjacent cache server to said first cache server.
-
23. A cluster server apparatus for distributing streaming data continuously in time in response to requests from a plurality of terminals connected to said cluster server apparatus through a network, said cluster server apparatus comprising:
-
a plurality of cache servers each operable to distribute the streaming data to the terminals corresponding to the requests from the terminals;
a load-distribution server operable to receive a request sent from one of the terminals, and to transfer the request to one of said plurality of cache servers based on whether the streaming data corresponding to the request is stored in said cache servers or not and states of streaming data distribution of each of said plurality of cache servers;
a content server having a storage unit operable to store the streaming data, said content server operable to output, to one of said plurality of cache servers, the streaming data corresponding to a request for streaming data distribution from one of said plurality of cache servers; and
each of said cache servers comprising;
a streaming data storage unit operable to store the streaming data output from said content server;
a cache control unit operable to control the streaming data output from said content server to be redundantly stored in said streaming data storage unit of at least one other predetermined cache server among said plurality of cache servers a request transfer unit operable to receive the request transferred from said load-distribution server, wherein when the streaming data corresponding to the request is stored in said streaming data storage unit, said request transfer unit is operable to output an instruction for distributing the streaming data stored in said streaming data storage unit, and when the streaming data corresponding to the request is not stored in said streaming data storage unit, said request transfer unit is operable to transfer the request to said content server to thereby retrieve the streaming data corresponding to the request, to store the streaming data retrieved from said content server in said streaming data storage unit, and to output the instruction for distributing the streaming data stored in said streaming data storage unit;
a data distribution unit operable to distribute the streaming data stored in said streaming data storage unit to the one of the terminals which sent the request based on the instruction output from said request transfer unit, and to notify, at regular intervals, said at least one other predetermined cache server among said plurality of cache servers, which redundantly stores the streaming data stored in said streaming data storage unit, of distribution information corresponding to the streaming data being distributed to the one of the terminals which sent the request; and
a distribution-disabled detection unit operable to detect, through distribution information received from another cache server among said plurality of cache servers, whether said another cache server becomes unable to carry out distribution of the streaming data, and to provide an instruction to said data distribution unit to instead distribute, within a predetermined period of time for avoiding an interruption in the distribution of the streaming data, streaming data that succeeds the streaming data most recently distributed by said another cache server that has become unable to carry out the distribution of the streaming data.
-
-
24. The cluster server apparatus according to claim 23, wherein
when said data distribution unit, by following the instruction provided by said distribution-disable detection unit, distributes the streaming data to the one of the terminals which sent the request instead of said another cache server that has become unable to carry out the distribution of the streaming data, said cache control unit is operable to control new streaming data from being stored in said streaming data storage unit.
-
25. The cluster server apparatus according to claim 23, wherein
when said another cache server recovers from being unable to carry out the distribution of the streaming data, said another cache server is operable to output a recovery notification to said data distribution unit of said at least one predetermined cache server among said plurality of cache servers that has redundantly stored the streaming data stored in said another cache server, and when receiving the recovery notification, said at least one other predetermined other cache server among said plurality of cache servers that has distributed the streaming data to the one of the terminals instead of said another cache server when said another cache server became unable to carry out the distribution of the streaming data, to copy the streaming data stored in said streaming data storage unit of said at least one other predetermined other cache server to said streaming data storage unit of said another cache server.
-
26. The cluster server apparatus according to claim 25, wherein
each of said plurality of cache servers further comprises a recovery detection unit operable to detect whether said another cache server recovers from being unable to carry out the distribution of the streaming data, when said another cache server recovers from being unable to carry out the distribution of the streaming data, said recovery detection unit of said another cache server provides a recovery notification to said at least one other predetermined cache server that takes over distribution of the streaming data to said terminal instead of said another cache server when said another cache server becomes unable to carry out the distribution of the streaming data, and to instruct said data distribution unit of said another cache server to distribute the streaming data that succeeds the streaming data that has been distributed by said at least one other predetermined cache server, and said recovery detection unit of at least one other predetermined cache server is operable to instruct said data distribution unit of said at least one other predetermined cache server to stop the distribution of the streaming data that has been distributed by said at least one other predetermined cache server instead of by said another cache server when said another cache server became unable to carry out the distribution of the streaming data.
-
27. The cluster server apparatus according to claim 26, wherein
when said at least one other predetermined cache server carries out distribution of streaming data exceeds a maximum number of distribution streams which said at least one other predetermined cache server is operable to distribute because of distributing the streaming data instead of said another cache server which became unable to carry out distribution of the streaming data, said recovery detection unit of said at least one other predetermined cache server is operable to instruct said data distribution unit of said at least one other predetermined cache server to stop distribution of the streaming data that has been distributed thereby instead of by said another cache server, and to instruct said data distribution unit of a still another cache server to start distributing streaming data that succeeds the streaming data that has been distributed by said at least one other predetermined cache server, and when said another cache server recovers from being unable to carry out the distribution of the streaming data, said recovery detection unit of said at least one other predetermined cache server is operable to provide the recovery notification to said still another cache server, and said recovery detection unit of said still another cache server instructs said data distribution unit of said still another cache server to stop distributing the streaming data that has been distributed by said still another cache server instead of by said at least one other predetermined cache server.
-
28. The cluster server apparatus according to claim 23, wherein the streaming data is moving-picture data.
-
29. A cluster server apparatus for distributing streaming data continuously in time in response to requests from a plurality of terminals connected to said cluster server apparatus through a network, said cluster server apparatus comprising:
-
a plurality of cache servers each operable to distribute the streaming data to the terminals corresponding to the requests from the terminals;
a load-distribution server operable to receive a request from one of the terminals, and to transfer the request to one of said plurality of cache servers based on whether the streaming data corresponding to the request is stored in said cache servers or not and states of streaming data distribution of each of said plurality of cache servers;
a content server having a storage unit operable to store the streaming data, said content server operable to output, to one of said plurality of cache servers, the streaming data corresponding to a request for streaming data distribution from one of said plurality of cache servers; and
each of said cache servers comprising;
a streaming data storage unit operable to store the streaming data output from said content server;
a cache control unit operable to control the streaming data output from said content server to be redundantly stored in said streaming data storage unit of at least one other predetermined cache server among said plurality of cache servers a request transfer unit operable to receive the request transferred from said load-distribution server, wherein when the streaming data corresponding to the request is stored in said streaming data storage unit, said request transfer unit is operable to output an instruction for distributing the streaming data stored in said streaming data storage unit, and when the streaming data corresponding to the request is not stored in said streaming data storage unit, said request transfer unit is operable to transfer the request to said content server to thereby retrieve the streaming data corresponding to the request, to store the streaming data retrieved from said content server in said streaming data storage unit, and to output the instruction for distributing the streaming data stored in said streaming data storage unit;
a data distribution unit operable to distribute the streaming data stored in said streaming data storage unit to the one of the terminals which sent the request based on the instruction output from said request transfer unit;
a session management unit operable to manage a session, which indicates an execution of distributing the streaming data to the one of the terminals which sent the request through the network, a packet most recently transmitted by said data distribution unit in each session, and a number of distribution streams of the streaming data; and
a distribution-disabled detection unit operable to regularly transmit to and receive from said at least one other predetermined cache server among said plurality of cache servers which redundantly stores the streaming data stored in said streaming data storage unit of said cache server a notification corresponding to packets for all sessions managed by said session management unit, wherein when one of said plurality of cache servers ceases to send the notification for a predetermined time period, said distribution-disabled detection unit of said cache server is operable to determine that said one of said plurality of cache servers which ceased to send the notification becomes unable to carry out distribution of the streaming data, and to provide an instruction to said data distribution unit of said cache server, which redundantly stores the streaming data stored in said one of said plurality of cache servers, to instead distribute, within a predetermined period for avoiding an interruption of the distribution of the streaming data, a packet that succeeds the packet identified by the notification most recently received for sessions of the redundantly-stored streaming data among sessions managed by said one of said plurality of cache servers which became unable to carry out the distribution of the streaming data.
-
-
30. The cluster server apparatus according to claim 29, wherein
when said one of said plurality cache servers becomes unable to carry out the distribution of the streaming data and a response from said session management unit of said cache server shows that a number of distribution streams exceeds a maximum number of distribution streams that said cache server is operable to distribute, said distribution-disabled detection unit of said cache server is operable to provide an overflow notification to another one of said plurality of cache servers that redundantly stores the streaming data stored in said streaming data storage unit of said one of said plurality of cache severs and said streaming data storage unit of said cache server, and to instruct said data distribution unit of said cache server to stop distributing streaming data exceeding the maximum number of distribution streams, and said distribution-disabled detection unit of said another one of said plurality of cache servers is operable to receive the overflow notification from said cache server, and upon receipt of the overflow notification, to instruct said data distribution unit of said another one of said plurality of cache servers to distribute a packet that succeeds the packet identified by a notification most recently received for streaming data exceeding the maximum number of distribution streams of which said cache server that has provided the overflow notification stops distributing.
-
31. The cluster server apparatus according to claim 29, wherein
each of said plurality of cache servers further comprises a distribution recovery unit operable to detect whether or not said one of said plurality of cache servers recovers from being unable to carry out the distribution of the streaming data, when said one of said plurality of cache servers recovers from being unable to carry out the distribution of the streaming data, said cache control unit of said one of said plurality of cache servers is operable to provide a recovery notification to said data distribution unit of said cache server that redundantly stores the streaming data stored in said streaming data storage unit of said one of said plurality of cache servers, and to copy the streaming data stored in said streaming data storage unit of said cache server to said streaming data storage unit of said one of said plurality of cache servers, and wherein, after said cache control unit of said one of said plurality of cache servers completes the copy of the streaming data to said streaming data storage unit of said one of said plurality of cache servers, said recovery detection unit of said one of said plurality of cache servers is operable to provide a recovery notification to said cache server, and to instruct said data distribution unit of said one of said plurality of cache servers to start distributing a packet that succeeds the packet identified by a packet identifier most recently transmitted in the streaming data that has been distributed instead by said cache server when said one of said plurality of cache servers became unable to carry out the distribution of the streaming data, and said recovery detection unit of said cache server is operable to instruct said data distribution unit of said cache server to stop distribution of the streaming data that has been distributed by said cache server instead of by said one of said plurality of cache servers when said one of said plurality of cache servers became unable to carry out the distribution of the streaming data.
-
32. The cluster server apparatus according to claim 31, wherein
when said cache server carrying out the distribution of streaming data instead of said one of said plurality of cache servers exceeds a maximum number of distribution streams which said cache server is operable to distribute, said recovery detection unit of said cache server is operable to instruct said data distribution unit of said cache server to stop distribution of the streaming data that has been distributed by said cache server instead of by said one of said plurality of cache servers when said one of said plurality of cache servers became unable to carry out the distribution of the streaming data, and to instruct said data distribution unit of said another one of said plurality of cache servers to distribute the streaming data that succeeds the streaming data that has been distributed by said cache server before said recovery detection unit of said cache server instructed said data distribution unit of said cache server to stop distribution of the streaming data; - and
when said one of said plurality of cache servers recovers from being unable to carry out the distribution of the streaming data, said recovery detection unit of said cache server is operable to provide the recovery notification to said another one of said plurality of cache servers, and to instruct said data distribution unit of said one of said plurality of cache servers to start distributing the packet that succeeds the packet identified by the packet identifier most recently transmitted in the streaming data that have been distributed by said another one of said plurality of cache servers, and said recovery detection unit of said another one of said plurality of cache servers is operable to instruct said data distribution unit of said another one of said plurality of cache servers to stop the distribution of the streaming data that has been distributed by said another one of said plurality of cache servers instead of said cache server that has provided the recovery notification.
- and
-
33. The cluster server apparatus according to claim 29, wherein the streaming data is moving-picture data.
-
34. A cluster server apparatus for distributing streaming data continuously in time in response to requests from a plurality of terminals connected to said cluster server apparatus through a network, said cluster server apparatus comprising:
-
a plurality of cache servers each operable to distribute the streaming data to the terminals corresponding to the requests from the terminals;
a load-distribution server operable to receive a request from one of the terminals, and to transfer the request to one of said plurality of cache servers based on whether the streaming data corresponding to the request is stored in said cache servers or not and states of streaming data distribution of each of said plurality of cache servers;
a content server having a storage unit operable to store the streaming data, said content server operable to output, to one of said plurality of cache servers, the streaming data corresponding to a request for streaming data distribution from one of said plurality of cache servers; and
each of said cache servers comprising;
a streaming data storage unit operable to store the streaming data output from said content server;
a cache control unit operable to control the streaming data output from said content server to be redundantly stored in said streaming data storage unit of at least one other predetermined cache server among said plurality of cache servers a request transfer unit operable to receive the request transferred from said load-distribution server, wherein when the streaming data corresponding to the request is stored in said streaming data storage unit, said request transfer unit is operable to output an instruction for distributing the streaming data stored in said streaming data storage unit, and when the streaming data corresponding to the request is not stored in said streaming data storage unit, said request transfer unit is operable to transfer the request to said content server to thereby retrieve the streaming data corresponding to the request, to store the streaming data retrieved from said content server in said streaming data storage unit, and to output the instruction for distributing the streaming data stored in said streaming data storage unit;
a data distribution unit operable to distribute the streaming data stored in said streaming data storage unit to the one of the terminals which sent the request based on the instruction output from said request transfer unit;
a session management unit operable to manage a session identifier for identifying a session, which indicates an execution of distributing the streaming data to the terminal which sent the request through the network, a packet identifier for identifying a packet most recently transmitted by said data distribution unit for each session, a session management table for storing said session identifier and said packet identifier, a table boundary value for dividing the session management table into two based on said session identifier, and a number of distribution streams of the streaming data; and
a distribution-disabled detection unit operable to regularly transmit to and receive from said at least one other predetermined cache server which redundantly stores the streaming data stored in said streaming data storage unit of one of said plurality of cache servers a notification corresponding to session identifiers and packet identifiers for all of the sessions in which the streaming data managed by said session management unit of said one of said plurality of cache servers are being distributed, and to update, according to the notification received by said at least one other predetermined cache server, said session identifier and said packet identifier stored in the session management table;
wherein said session management unit is operable to set said session identifier of the session for the streaming data being distributed by said data distribution unit of said cache server to a value smaller than or equal to the table boundary value, and to set said session identifier of the session for the streaming data being distributed by said data distribution units of said plurality of cache servers other than said cache server to a value larger than the table boundary value, said data distribution unit of said cache server is operable to repeatedly distribute the packet to the one of the terminals which sent the request and to update said packet identifier when said session identifier is smaller than or equal to the table boundary value in all of the sessions, and when one of said plurality of cache servers ceases to send the notification for a predetermined time period, said distribution-disabled detection unit of said cache server is operable to determine that said one of said plurality of cache servers which ceased to send the notification becomes unable to carry out distribution of the streaming data, and to set the table boundary value to a value larger than a maximum value of said session identifier within a predetermined period for avoiding an interruption of the distribution of the streaming data.
-
-
35. The cluster server apparatus according to claim 34, wherein
each of said at least one other predetermined cache server among said plurality of cache servers which redundantly stores the streaming data stored in said streaming data storage unit of said cache server includes a session management table in which a maximum number of registerable sessions is MAX, where MAX is a maximum number of distribution streams that each of said at least one other predetermined cache server among said plurality of cache servers is operable to distribute, each of said session management units of each of said plurality of cache servers is operable to set its respective session identifier to a value smaller than the table boundary value for the session of the streaming data being distributed by its respective data distribution unit, and to set said session identifier of each other one of said plurality of cache servers to a value larger than the table boundary value for the session of the streaming data being distributed by said data distribution unit of said each other one of said plurality of cache servers, wherein each of said session management units of each of said plurality of cache servers sets respective session identifiers I1-In, where n is an integer greater than or equal to two, that are smaller than the table boundary value in the session management table in said each other one of said plurality of cache servers to values of (MAX-I1− - 1) to (MAX-In−
1), respectively, so as to set said respective session identifiers I1-In to a value larger than the table boundary value for the session of the streaming data being distributed by said data distribution unit of said each other one of said plurality of cache servers, andsaid distribution-disabled unit of each of said plurality of cache servers is operable to update, according to the notification received by said each other one of said plurality of cache servers, values in the session management table to the values (MAX-I1−
1) to (MAX-In−
1) of said session identifiers included in the notification and values of packet identifiers P1 to Pn, and when the table boundary value is changed to F, to set the table boundary value to MAX-F.
- 1) to (MAX-In−
-
36. The cluster server apparatus according to claim 35, wherein said each of said plurality of cache servers further comprises a distribution recovery unit operable to detect whether said one of said plurality of cache servers which has become unable to carry out distribution of the streaming data recovers from being unable to carry out the distribution of the streaming data;
-
wherein when said one of plurality of cache servers recovers from being unable to carry out the distribution of the streaming data, said cache control unit of said one of said plurality of cache servers is operable to provide a recovery notification to said data distribution unit of said at least one other predetermined cache server among said plurality of cache servers which redundantly stores the streaming data stored in said streaming data storage unit of said one of said plurality of cache servers, and to copy the streaming data stored in said streaming data storage unit of said at least one other predetermined cache server among said plurality of cache servers, which instead distributed the streaming data to the one of the terminals which sent the request when said one of said plurality of cache servers became unable to carry out distribution of the streaming data, to said streaming data storage unit of said one of said plurality of cache servers which has recovered; and
wherein when said cache control unit of said one of said plurality of cache servers completes the copy of the streaming data, said recovery detection unit of said one of said plurality of cache servers is operable to provide a recovery notification to said at least one other predetermined cache server among said plurality of cache servers, and to set the table boundary value of said one of said plurality of cache servers back to a value before said one of said plurality of cache servers became unable to carry out the distribution of the streaming data, and said recovery detection unit of said at least one other predetermined cache server among said plurality of cache servers is operable to set the table boundary value back to a value of the table boundary value of said at least one other predetermined cache server among said plurality of cache servers before said one of said plurality of cache servers became unable to carry out distribution.
-
-
37. The cluster server apparatus according to claim 34, wherein
when a streaming data set S1 stored in both a cache server A and a cache server B among said plurality of cache servers and a streaming data set S2 stored in both said cache server A and a cache server C among said plurality of cache servers are stored in said streaming data storage unit of said cache server A, said cache server A has session management tables T0 and T1 and table boundary values F0 and F1 at which the session management tables T0 and T1 are divided into two based on said session identifier of said cache server A, wherein in said session management table T0, said session identifier is set to a value smaller than the table boundary value F0 for the session of the streaming data included in the streaming data set S1 being distributed by said cache server A, while said session identifier is set to a value larger than the table boundary value F1 for the session of the streaming data included in the streaming data set S1 being distributed by said cache server B, wherein said session management unit of said cache server A sets session identifiers I1-In, where n is an integer greater than or equal to two, that are smaller than the table boundary value F1 to one of values (MAX-I1− - 1) to (MAX-In−
1), respectively, where MAX is a maximum number of distribution streams that each of said cache servers A to C is operable to distribute, in said session management table of said cache server B, so as to set said I1-In session identifiers to a value larger than the table value boundary value F1 for the session of the streaming data set S1 being distributed by said cache server B,in said session management table T1, said session identifier is set to a value smaller than the table boundary value F1 for the session of the streaming data included in the streaming data set S2 being distributed by said cache server A, while said session identifier is set to a value larger than the table boundary value F0 for the session of the streaming data included in the streaming data set S2 being distributed by said cache server C, wherein said session management unit of said cache server A sets session identifiers J1-Jn that are smaller than the table value boundary value F1 to one of values (MAX-J1−
1) to (MAX-Jn−
1), respectively, in said management unit table of said cache server C so as to set said J1-Jn session identifiers to a value larger than the table boundary value F1 for the session of the streaming data set S2 being distributed by said cache server C;
wherein in said cache server A, said distribution-disabled detection unit is operable to;
transmit a notification indicating said session identifier and said packet identifier for all sessions of the streaming data being distributed to said cache servers B and C by making an inquiry to said session management unit of said cache servers B and said session management unit of said cache server C, and receive the notification from said cache servers B and C;
set the table boundary value F0 to a value equal to or larger than MAX when no notification comes from said cache server B, and set the table boundary value F1 to a value equal to or larger than MAX when no notification comes from said cache server C;
when the number of distribution streams exceeds the maximum number of distribution streams, set the table boundary value F1 to a value smaller than the maximum number of distribution streams if no notification comes from said cache server B, and set the table boundary value F0 to a value smaller than the maximum number of distribution streams if the notification comes from said cache server C.
- 1) to (MAX-In−
-
38. The cluster server apparatus according to claim 37, wherein
each of said plurality of cache servers further comprises a distribution recovery unit operable to detect whether said one of said plurality of cache servers which has become unable to carry out distribution of the streaming data recovers from being unable to carry out distribution of the streaming data; -
wherein when said one of said plurality of cache servers recovers from being unable to carry out distribution of the streaming data, said cache control unit of said one of said plurality of cache server is operable to provide a recovery notification to said data distribution unit of said cache server A, which redundantly stores the streaming data stored in said streaming data storage unit of said one of said plurality of cache servers, and to copy the streaming data stored in said streaming data storage unit of said cache server A, which instead distributed the streaming data to the one of the terminals which sent the request when said one of said plurality of cache servers became unable to carry out distribution of the streaming data, to said streaming data storage unit of said one of said plurality of cache servers;
wherein when said cache control unit of said one of said plurality of cache servers completes the copy of the streaming data by providing a recovery notification to said cache server A, said recovery detection unit of said one of said plurality of cache servers is operable to set the table boundary value of said one of said plurality of cache servers back to a value which existed before said one of said plurality of cache servers became unable to carry out the distribution of the streaming data; and
wherein when the table boundary value of said one of said plurality of cache server is set to the value which existed before said one of said plurality of cache servers became unable to carry out the distribution of the streaming data, said recovery detection unit of said cache server A is operable to set the table boundary values F0 and F1 back to values which existed before said one of said plurality of cache servers became unable to carry out the distribution.
-
-
39. The cluster server apparatus according to claim 34, wherein the streaming data is moving-picture data.
-
40. A cluster server apparatus for distributing streaming data continuously in time in response to requests from a plurality of terminals connected to said cluster server apparatus through a network, said cluster server apparatus comprising:
-
a plurality of cache servers each operable to distribute the streaming data to the terminals corresponding to the requests from the terminals;
a load-distribution server operable to receive a request from one of the terminals, and to transfer the request to one of said plurality of cache servers based on whether the streaming data corresponding to the request is stored in said cache servers or not and states of streaming data distribution of each of said plurality of cache servers;
a content server having a storage unit operable to store the streaming data, said content server operable to output, to one of said plurality of cache servers, the streaming data corresponding to a request for streaming data distribution from one of said plurality of cache servers; and
each of said cache servers comprising;
a streaming data storage unit operable to store the streaming data output from said content server;
a cache control unit operable to control the streaming data output from said content server to be redundantly stored in said streaming data storage unit of at least one other predetermined cache server among said plurality of cache servers;
a request transfer unit operable to receive the request transferred from said load-distribution server, wherein when the streaming data corresponding to the request is stored in said streaming data storage unit, said request transfer unit is operable to output an instruction for distributing the streaming data stored in said streaming data storage unit, and when the streaming data corresponding to the request is not stored in said streaming data storage unit, said request transfer unit is operable to transfer the request to said content server to thereby retrieve the streaming data corresponding to the request, to store the streaming data retrieved from said content server in said streaming data storage unit, and to output the instruction for distributing the streaming data stored in said streaming data storage unit;
a data distribution unit operable to distribute the streaming data stored in said streaming data storage unit to the one of the terminals which sent the request based on the instruction output from said request transfer unit;
a session management unit operable to manage a number of distribution streams of the streaming data distributed by said data distribution unit; and
a distribution-disabled detection unit operable to detect whether one of said plurality of cache servers becomes unable to carry out distribution of the streaming data, instruct said data distribution unit to instead distribute the streaming data that succeeds the streaming data most recently distributed by said one of said plurality of cache servers before said one of said plurality of cache servers became unable to carry out the distribution of the streaming data, provide an overflow notification to another one of said plurality of cache servers that redundantly stores the streaming data stored in said streaming data storage unit of said cache server and streaming data storage unit of said one of said plurality of cache servers, and instruct said data distribution unit to stop distributing streaming data that exceeds a maximum number of permissible distribution streams that said cache server is operable to distribute;
wherein, upon receiving the overflow notification from said distribution-disabled detection unit of said cache server, said distribution-disabled detection unit of said another one of said plurality of cache servers is operable to instruct said data distribution unit of said another one of said plurality of cache servers to transmit streaming data that succeeds the streaming data most recently distributed by said cache server for all streaming data that exceeds the maximum number of permissible distribution streams that said cache server stopped distributing.
-
-
41. The cluster server apparatus according to claim 40, wherein the streaming data is moving-picture data.
Specification