IP Library Granted Patent US 10,264,093
Granted Patent B2
US 10,264,093 · App. 15/911,477 · Granted Apr 16, 2019

Systems and methods for partial video caching

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,264,093
App. No.
15/911,477
Granted
Apr 16, 2019
Kind
B2
Abstract

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.

Claims (37)

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.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2023
From: BYTEMOBILE INNOVATIONS, LLC
To: OPTIMORPHIX, INC.
Reel/Frame 064054/0247 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2022
From: CITRIX SYSTEMS, INC.
To: BYTEMOBILE INNOVATIONS, LLC
Reel/Frame 059087/0052 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2018
From: DAKHANE, KAPIL; BEREDIMAS, IOANNIS; KIDD, ROBERT; STAVRAKOS, NICHOLAS JAMES; PENNER, ANDREW MICHAEL
To: CITRIX SYSTEMS, INC.
Reel/Frame 045314/0919 →