Systems and methods for partial video caching
View Patent ↗A cache server includes a memory, and a processor to acquire segments of media data associated with a first request, with the first request being generated by a client device. The segments associated with the first request are stored in the memory. Keys for the segments associated with the first request are generated, with each segment having a respective key associated therewith that is a unique identifier for that segment.
1. A cache server comprising:
a memory; and
at least one processor configured to:
acquire a plurality of segments of media data associated with a first request, and a plurality of segments of media data associated with a second request, the first and second requests being generated by at least one client device;
generate a plurality of keys for the plurality of segments associated with the first request, and a plurality of keys for the plurality of segments associated with the second request, with each segment having a respective key associated therewith that is a unique identifier for that segment;
generate a first set entry that includes a first set key for the plurality of segments associated with the first request;
determine whether the plurality of segments associated with the second request is associated with the plurality of segments associated with the first request; and
generate a second set entry that includes a second set key for the plurality of segments associated with the second request if the plurality of segments associated with the second request are not associated with the plurality of segments associated with the first request.
2. The cache server of claim 1 , wherein the first set entry further includes a first set metadata for the plurality of segments associated with the first request.
3. The cache server of claim 2 , wherein the first set metadata includes at least one of a quality of each segment, an address for each segment, and a count of a number of times the first set entry was requested from the cache server.
4. The cache server of claim 1 , wherein said at least one processor is further configured to store the plurality of segments associated with the first request if a property of the plurality of segments associated with the first request exceeds a popularity threshold, and to store the plurality of segments associated with the second request if a property of the plurality of segments associated with the second request exceeds a popularity threshold.
5. The cache server of claim 4 , wherein the popularity threshold is based on at least one of the plurality of segments being viewed a predetermined number of times during a predetermined time period.
6. The cache server of claim 1 , wherein said at least one processor is further configured to:
update the first set entry and the first set key if the plurality of segments associated with the second request are associated with the plurality of segments associated with the first request.
7. A method for operating a cache server comprising:
acquiring a plurality of segments of media data associated with a first request, and a plurality of segments of media data associated with a second request, the first and second requests being generated by at least one client device;
generating a plurality of keys for the plurality of segments associated with the first request, and a plurality of keys for the plurality of segments associated with the second request, with each segment having a respective key associated therewith that is a unique identifier for that segment;
generating a first set entry that includes a first set key for the plurality of segments associated with the first request;
determining whether the plurality of segments associated with the second request is associated with the plurality of segments associated with the first request; and
generating a second set entry that includes a second set key for the plurality of segments associated with the second request if the plurality of segments associated with the second request are not associated with the plurality of segments associated with the first request.
8. The method of claim 7 , wherein the first set entry further includes a first set metadata for the plurality of segments associated with the first request.
9. The method of claim 8 , wherein the first set metadata includes at least one of a quality of each segment, an address for each segment, and a count of a number of times the first set entry was requested from the cache server.
10. The method of claim 7 , further comprising storing the plurality of segments associated with the first request if a property of the plurality of segments associated with the first request exceeds a popularity threshold, and storing the plurality of segments associated with the second request if a property of the plurality of segments associated with the second request exceeds a popularity threshold.
11. The method of claim 10 , wherein the popularity threshold is based on at least one of the plurality of segments being viewed a predetermined number of times during a predetermined time period.
12. The method of claim 7 , further comprising:
updating the first set entry and the first set key if the plurality of segments associated with the second request are associated with the plurality of segments associated with the first request.
13. A non-transitory computer-readable medium for a cache server, with the non-transitory computer readable medium having a plurality of computer executable instructions for causing the cache server to perform steps comprising:
acquiring a plurality of segments of media data associated with a first request, and a plurality of segments of media data associated with a second request, the first and second requests being generated by at least one client device;
generating a plurality of keys for the plurality of segments associated with the first request, and a plurality of keys for the plurality of segments associated with the second request, with each segment having a respective key associated therewith that is a unique identifier for that segment;
generating a first set entry that includes a first set key for the plurality of segments associated with the first request;
determining whether the plurality of segments associated with the second request is associated with the plurality of segments associated with the first request; and
generating a second set entry that includes a second set key for the plurality of segments associated with the second request if the plurality of segments associated with the second request are not associated with the plurality of segments associated with the first request.
14. The non-transitory computer-readable medium of claim 13 , wherein the first set entry further includes a first set metadata for the plurality of segments associated with the first request.
15. The non-transitory computer-readable medium of claim 14 , wherein the first set metadata includes at least one of a quality of each segment, an address for each segment, and a count of a number of times the first set entry was requested from the cache server.
16. The non-transitory computer-readable medium of claim 13 , wherein the plurality of computer executable instructions further causes the cache server to perform a step comprising storing the plurality of segments associated with the first request if a property of the plurality of segments associated with the first request exceeds a popularity threshold, and storing the plurality of segments associated with the second request if a property of the plurality of segments associated with the second request exceeds a popularity threshold.
17. The non-transitory computer-readable medium of claim 13 , wherein the plurality of computer executable instructions further causes the cache server to perform the following steps:
updating the first set entry and the first set key if the plurality of segments associated with the second request are associated with the plurality of segments associated with the first request.