Method and system for caching streaming live broadcasts transmitted over a network
DC CAFCFirst Claim
1. In a network having a content server which hosts a plurality of live streaming multimedia (SM) broadcast objects for distribution over said network through a plurality of helper servers (HSs) to a plurality of clients, a method of reducing start-up latency associated with distributing said plurality of live SM broadcast objects from said content server and said plurality of HSs to said plurality of clients, said method comprising:
- receiving a first request from one of said plurality of clients for one of said plurality of live SM broadcast objects at one of said plurality of HSs;
determining whether said first request can be partially serviced from a pre-configured playout history (PH) buffer allocated in a memory associated with said one of said plurality of HSs; and
partially servicing said first request from said pre-configured PH buffer at a first data rate, if said determining step is satisfied, the first data rate being higher than a standard data rate associated with servicing the first request from a non pre-configured PH buffer.
4 Assignments
Litigations
1 Petition
Accused Products
Abstract
Disclosed is a method and an apparatus for enhancing existing caching systems to better support the live broadcast of streaming multimedia over the Internet and other public network systems. The apparatus includes the use of helper servers in the network for supporting high quality live streaming multimedia (SM) broadcasts. The helper servers (HS), also referred to as helpers, are each positioned in the network to be close to some number of clients. Client requests for live SM broadcast objects are re-routed from the content server to the local HS to be serviced therefrom. Servicing requests from the local HS is advantageous in that the requests are not required to be serviced from the content server as separate unicast datastreams thereby reducing network congestion problems. In addition to servicing requests locally, each HS allocates and maintains PH buffers which operate as a form of dynamic cache to further reduce the playback delay at a client. The PH buffers operate as a moving window of fixed size that advances with the live broadcast stream, storing the last few seconds of the live SM broadcast. The cached data is made immediately available to a requesting client to fill the client'"'"'s playout buffer as rapidly as possible.
165 Citations
29 Claims
-
1. In a network having a content server which hosts a plurality of live streaming multimedia (SM) broadcast objects for distribution over said network through a plurality of helper servers (HSs) to a plurality of clients, a method of reducing start-up latency associated with distributing said plurality of live SM broadcast objects from said content server and said plurality of HSs to said plurality of clients, said method comprising:
-
receiving a first request from one of said plurality of clients for one of said plurality of live SM broadcast objects at one of said plurality of HSs;
determining whether said first request can be partially serviced from a pre-configured playout history (PH) buffer allocated in a memory associated with said one of said plurality of HSs; and
partially servicing said first request from said pre-configured PH buffer at a first data rate, if said determining step is satisfied, the first data rate being higher than a standard data rate associated with servicing the first request from a non pre-configured PH buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
servicing said request without allocating said non pre-configured PH buffer, if there are not any non pre-configured PH buffers in said memory otherwise performing the following steps;
1) sorting all received requests in a least recently received time order to form a sorted request list;
2) evaluating an associated receive time for the ith request in said sorted list, where i ranges from 1 to the total number of received requests, to determine if said associated receive time exceeds a storage time threshold T;
If step 2 is satisfied;
a) de-allocating from said memory, said non pre-configured PH buffer associated with said ith request;
b) returning to step (2) if it is determined that there is an insufficient amount of free memory available in said memory and index I does not exceed the number of requests in said sorted list, otherwise servicing said request without allocating said non pre-configured PH buffer;
if step 2 is not satisfied;
servicing said request without allocating said non pre-configured PH buffer.
-
-
5. The method according to claim 2, further comprising the step of servicing at least one request for said one of said plurality of live SM broadcast objects from said at least one non pre-configured PH buffer at said first data rate, when said non pre-configured PH buffer is allocated in said memory to service said first request, wherein said at least one request is received at a time after receiving said first request.
-
6. The method according to claim 5, wherein the servicing step further includes the step of distributing data packets stored in said at least one of said at least one non pre-configured PH buffers to said one of said plurality of clients, wherein said data packets make up said one of said plurality of live SM broadcast objects.
-
7. The method according to claim 5, wherein said at least one request is serviced from said one of said plurality of HSs at the standard data rate when said non pre-configured PH buffer is not allocated in said memory.
-
8. The method according to claim 1, further comprising the step of storing a playout history associated with one of said plurality of live SM broadcast objects for said pre-configured PH buffer, wherein said playout history substantially comprises the last few seconds of said one of said plurality of live SM broadcast objects.
-
9. The method according to claim 1, wherein said pre-configured PH-buffer is allocated in said memory at a configuration stage.
-
10. The method according to claim 1, wherein said pre-configured PH buffer is permanently maintained in said memory.
-
11. The method according to claim 2, wherein said allocated non pre-configured PH buffer is de-allocated from said memory, upon determining:
-
a) said first request has been terminated or completed; and
b) there are no further requests being received at said one of said plurality of HSs to be serviced from said allocated non pre-configured PH buffer.
-
-
12. The method according to claim 1, wherein the step of determining whether said first request can be partially serviced from said pre-configured PH buffer further includes the step of determining whether said pre-configured PH buffer was previously allocated at a configuration stage.
-
13. The method according to claim 1, wherein the step of partially servicing said first request further includes the step of distributing data packets stored in said pre-configured PH buffer to said one of said plurality of clients, wherein said data packets make up said one of said plurality of live SM broadcast objects.
-
14. The method of claim 1, wherein said pre-configured PH buffer and said allocated PH buffer are maintained in the memory of said one of said plurality of HSs as a sliding window by replacing currently stored data packets of said one of said plurality of live SM objects with data packets representing successive portions of said one of said plurality of live SM objects.
-
15. In a network having a content server which hosts a plurality of live streaming multimedia (SM) broadcast objects for distribution over said network through a plurality of helper servers (HSs) to a plurality of clients, a method of reducing start-up latency associated with distributing said plurality of live SM broadcast objects from said content server and said plurality of HSs to said plurality of clients, said method comprising:
-
receiving a request from one of said plurality of clients for one of said plurality of live SM broadcast objects at one of said plurality of HSs;
determining whether said request can be partially serviced from a pre-configured playout history (PH) buffer allocated in a memory associated with said one of said plurality of IHSs;
partially servicing said request from said pre-configured PH buffer at a first data rate, if said determining step is satisfied, the first data rate being higher than a standard data rate associated with servicing said request from a non pre-configured PH buffer; and
allocating the non pre-configured PH buffer in said memory to partially service said request at said standard data rate, if said determining step is not satisfied. - View Dependent Claims (16, 17, 18, 19)
a) said request has been terminated or completed; and
b) there are no further requests being received at said one of said plurality of HSs to be serviced from said allocated non pre-configured PH buffer.
-
-
18. The method according to claim 15, wherein the allocating step further includes the step of determining whether there is a sufficient amount of memory available in said memory to be allocated to said non pre-configured PH buffer.
-
19. The method according to claim 18, wherein said request is serviced from said one of said plurality of HSs at said standard data rate when it is determined that there is an insufficient amount of memory available to allocate said non pre-configured PH buffer.
-
20. In a network having a content server which hosts a plurality of live streaming multimedia (SM) broadcast objects for distribution over said network through a plurality of helper servers (HSs) to a plurality of clients, a method of reducing start-up latency associated with distributing said plurality of live SM broadcast objects from said content server and said plurality of HSs to said plurality of clients, said method comprising:
-
receiving a request from one of said plurality of clients for one of said plurality of live SM broadcast objects at one of said plurality of Hss;
determining whether said request can be partially serviced at a first data rate from a pre-configured playout history (PH) buffer allocated in a memory associated with said one of said plurality of HSs, the first data rate being higher than a standard data rate associated with servicing the request from a non pre-configured PH buffer; and
allocating the non pre-configured PH buffer, in said memory to partially service said request at said standard data rate, if said determining step is not satisfied. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
-
27. In a network having a content server which hosts a plurality of live streaming multimedia (SM) broadcast objects for distribution over said network through a plurality of helper servers (HSs) to a plurality of clients, a method of reducing start-up latency associated with distributing said plurality of live SM broadcast objects from said content server and said plurality of HSs to said plurality of clients, said method comprising:
-
receiving a first request for one of said plurality of live SM broadcast objects at one of said plurality of HSs;
servicing said first request from a non pre-configured playout history (PH) buffer at a first data rate;
receiving a second request for said one of said plurality of live SM broadcast objects at said one of said plurality of HSs; and
partially servicing said second request from said non pre-configured PH buffer at a second data rate, wherein said second data rate is higher than said first data rate. - View Dependent Claims (28, 29)
-
Specification