System And Method For Highly-Scalable Real-Time And Time-Based Data Delivery Using Server Clusters
Abstract
The present invention provides loosely-coupled cluster systems comprising a plurality of servers based on storage attached to the plurality of servers. Videos, or other assets, are automatically replicated within the server system to increase the number of concurrent play requests serviceable. The server systems can detect spikes in demand that may exceed the guaranteed number of concurrent play requests serviceable and dynamically transfer the high-in-demand or ‘hot’ asset to servers in the cluster that do not have the video. Alternatively, instead of transferring the entire asset, varying length prefixes of the asset may be transferred depending on the availability of resources. The remainder of the asset is transferred in some embodiments on demand with sufficient buffering or other storage to guarantee playback to the user or subscriber according to the required quality of service (QOS).
Claims
exact text as granted — not AI-modified1 . A method for scaling a video-on-demand system having a plurality of servers providing time-based streaming of at least one media asset, said method comprising:
configuring a server system including a first initial plurality of networked servers to store an initial multiplicity of media assets including a particular media asset; dynamically balancing the initial placement of the media assets and a subsequent replication of at least one of the multiplicity of media assets including the particular media asset among the plurality of servers according to the following policies:
(i) perform the balancing before a particular media asset stream is requested by a user,
(ii) perform the balancing at the point at which the particular media asset stream is requested by the user, and
(iii) never perform the balancing for a particular media asset after a session for streaming the particular media asset has been requested by the user;
the dynamic balancing including dynamic content replication to increase the number of copies of the media asset content placed on the servers without dynamic session migration between the servers after the particular media asset streaming to the user has been initiated, and identifying a least loaded server among the plurality of servers and initiating a new media asset streaming from the identified least loaded server at the time; and continuing the session including continuing the streaming of the particular media asset to the user from the same server from which the streaming was initiated without switching or migrating the streaming to a different one of the plurality of servers.
2 . The method in claim 1 , wherein the media asset content is not changed when it is copied or replicated to different ones of the plurality of servers.
3 . The method in claim 1 , wherein the balancing including the dynamic balancing does not require any synchronization between two different media asset streams.
4 . The method in claim 1 , wherein the particular media asset is a hot media asset.
5 . The method in claim 1 , further including increasing the first initial plurality of networked servers to a greater number of networked servers, and performing the dynamic balancing when increasing the number of servers.
6 . A scalable video-on-demand system having a plurality of servers providing time-based streaming of at least one media asset, said system comprising:
a server system including a first initial plurality of networked servers to store an initial multiplicity of media assets including a particular media asset; means for dynamically balancing the initial placement of the media assets and a subsequent replication of at least one of the multiplicity of media assets including the particular media asset among the plurality of servers according to the following policies:
(i) perform the balancing before a particular media asset stream is requested by a user,
(ii) perform the balancing at the point at which the particular media asset stream is requested by the user, and
(iii) never perform the balancing for a particular media asset after a session for streaming the particular media asset has been requested by the user;
the dynamic balancing including dynamic content replication to increase the number of copies of the media asset content placed on the servers without dynamic session migration between the servers after the particular media asset streaming to the user has been initiated, and identifying a least loaded server among the plurality of servers and initiating a new media asset streaming from the identified least loaded server at the time. continuing the session including continuing the streaming of the particular media asset to the user from the same server from which the streaming was initiated without switching or migrating the streaming to a different one of the plurality of servers;
7 . The system in claim 6 , wherein the media asset content is not changed when it is copied or replicated to different ones of the plurality of servers.
8 . The method in claim 6 , wherein the balancing including the dynamic balancing does not require any synchronization between two different media asset streams.
9 . The method in claim 6 , wherein the particular media asset is a hot media asset.
10 . A business model for operating a time-base accurate asset streaming business, said business model comprising:
configuring a server system including a first initial plurality of networked servers to store a multiplicity of media assets including a particular media asset; dynamically balancing the initial placement of the media assets and a subsequent replication of at least one of the multiplicity of media assets including the particular media asset among the plurality of servers according to the following policies:
(i) perform the balancing before a particular media asset stream is requested by a user,
(ii) perform the balancing at the point at which the particular media asset stream is requested by the user, and
(iii) never perform the balancing for a particular media asset after a session for streaming the particular media asset has been requested by the user;
the dynamic balancing including dynamic content replication to increase the number of copies of the media asset content placed on the servers without dynamic session migration between the servers after the particular media asset streaming to the user has been initiated, and identifying a least loaded server among the plurality of servers and initiating a new media asset streaming from the identified least loaded server at the time; and continuing the session including continuing the streaming of the particular media asset to the user from the same server from which the streaming was initiated without switching or migrating the streaming to a different one of the plurality of servers; operating server system to receive and service requests for a media asset at a first server, said first server (i) receiving a request for a media asset, (ii) determining if said first server has said asset available for time-base accurately streaming and has sufficient resources to time-base accurately stream said asset, and (iii) time-base accurately streaming said media asset if it is determined that said first server has said asset available for time-base accurately streaming and has sufficient resources to time-base accurately stream said asset; and if said determining indicates that said first server does not have said asset available for time-base accurately streaming or does not have sufficient resources to time-base accurately stream said asset, then: (i) identifying a second server having said asset available for time-base accurately streaming and sufficient resources to time-base accurately stream said asset, and (ii) forwarding said request to said identified second server for servicing by said second server.
11 . The method in claim 10 , further including:
determining if said asset is a hot asset, and if said asset is determined to be a hot asset, then copying information associated with said asset to said second server including copying at least one of: (a) a prefix of said asset to said second server, and (b) copying the asset to the second server and streaming the prefix of the asset from the second server.
12 . A method for time-based streaming of assets, said method comprising:
receiving a request for an asset at a first server; determining if said first server has said asset; determining if said first server has sufficient resources to stream said asset; if said first server does not have said asset or said first server does not have sufficient resources to stream said asset, forwarding said request to a second server having said asset and sufficient resources to stream said asset; if said first server has said asset and sufficient resources to stream said asset, determining if said first server has a load level less than a load threshold value; if said first server has a first server load level less than a load threshold value, streaming said asset and maintaining a time-base for said streamed asset; and if said first server has a load level greater than a load threshold level,
attempting to find a second server having said asset, sufficient resources to stream said asset, and a second server load level less than said first server load level;
forwarding said request if said second server is located; and
streaming said asset and maintaining a time-base for said streamed asset if said second server is not located.
13 . A method according to claim 23 , further comprising:
determining if said asset is hot; and copying information associated with said asset to a second server if said asset is hot.
14 . A method according to claim 13 , wherein said determining if said asset is hot comprises determining if a number of requests for said asset during a predetermined hot asset period exceeds a predetermined hot asset count.
15 . A method according to claim 13 , wherein said determining if said asset is hot comprises determining if a number of requests for said asset during a predetermined hot asset period equals or exceeds a predetermined hot asset count.
16 . A method according to claim 13 , wherein said copying information comprises copying said asset to said second server.
17 . A method according to claim 13 , wherein said copying information comprises copying metadata associated with said asset to said second server.
18 . A method according to claim 13 , wherein said copying information comprises copying a prefix of said asset of said second server.
19 . A method according to claim 13 , wherein said determining if said asset exists at said first server comprises determining if information about said asset is stored in a first computer readable storage medium associated with said first server.
20 . A method according to claim 13 , wherein said information about said asset comprises information selected from the group consisting of said asset, metadata associated with said asset, a prefix of said asset, and combinations thereof.Join the waitlist — get patent alerts
Track US2008209067A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.