IP Library › Granted Patent US 12,363,390
Granted Patent B2
US 12,363,390 · App. 17/933,980 · Granted Jul 15, 2025

Video file storage prediction process for caches in video servers

Inventors: Xiaocheng Li (Beijing, CN); Wei Feng (Beijing, CN); Wenhao Zhang (Beijing, CN); Jiarui Yang (Beijing, CN)
Assignee: Hulu, LLC
H04N21/4826H04N21/4331H04N21/44H04N21/4532H04N21/4668
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 12,363,390
App. No.
17/933,980
Granted
Jul 15, 2025
Kind
B2
Abstract

In some embodiments, a method receives a time period in which video files will be delivered through a plurality of nodes. The method determines a plurality of user accounts that may use a video delivery system to deliver the video files in the time period; generates probabilities of which nodes may be used for each of the plurality of user accounts in the time period; and generates probabilities of which video files may be accessed by each of the plurality of user accounts. A list of video files is generated for a node based on the probabilities of which video files may be accessed and the probabilities of which nodes may be used for each of the plurality of user accounts. The method causes at least a portion of the list of video files for the node to be stored on the node.

Claims (60)

1. A method comprising:

receiving, by a computing device, a time period in which a plurality of video files will be delivered through a plurality of nodes to client devices;

generating a total number of user accounts to use the video delivery system in the time period;

determining, by the computing device, a plurality of user accounts that may use a video delivery system to deliver the plurality of video files in the time period, wherein the total number of user accounts is used to predict the plurality of user accounts that may use the video delivery system, and wherein determining the plurality of user accounts that may use the video delivery system comprises:

generating a third probability for the plurality of user accounts that each respective user account may use the video delivery system based on the total number of user accounts to use the video delivery system in the time period;

generating, by the computing device, first probabilities of which nodes in the plurality of nodes may be used to deliver video files in the plurality of video files to client devices for each of the plurality of user accounts in the time period, wherein nodes that deliver video files in the plurality of nodes are associated with respective first probabilities;

generating, by the computing device, second probabilities of which video files the plurality of video files may be accessed by each of the plurality of user accounts, wherein video files in the plurality of video files are associated with respective second probabilities;

generating, by the computing device, a list of video files for nodes in the plurality of nodes based on the second probabilities of which video files may be accessed and the first probabilities of which nodes may be used for each of the plurality of user accounts; and

causing, by the computing device, at least a portion of the list of video files for respective nodes to be stored on the respective nodes for delivery to client devices.

2. The method of claim 1 , wherein:

a video asset is associated with the plurality of video files, and

the second probabilities of which video files may be accessed by each of the plurality of user accounts include respective second probabilities for video files in the plurality of video files for each user.

3. The method of claim 1 , wherein a video file in the list of video files for a respective node is not stored on a respective node.

4. The method of claim 1 , wherein the list of video files for a first node is different from the list of video files for a second node.

5. The method of claim 1 , wherein generating the first probabilities of which nodes may be used for each of the plurality of user accounts comprises:

generating an impression value that indicates a likelihood of a video file being accessed by each of the plurality of user accounts.

6. The method of claim 1 , wherein generating the first probabilities of which nodes may be used for each of the plurality of user accounts comprises:

generating first probabilities of accessing each node for each of the plurality of user accounts.

7. The method of claim 1 , wherein generating second probabilities of which video files may be accessed by each of the plurality of user accounts comprises:

using metrics from which video files were viewed by a user account to generate the second probabilities of which video files may be accessed by the user account.

8. The method of claim 1 , wherein generating the list of video files for each node comprises:

using an access probability of the plurality of user accounts that may access a node and an access probability to access a video file on the node to generate a list of video files for the node.

9. The method of claim 1 , further comprising:

ranking the respective list of video files for respective nodes; and

selecting the at least a portion of the list of video files from the ranked list of video files for the respective nodes.

10. The method of claim 1 , wherein causing the at least a portion of the list of video files for the respective nodes to be stored on the respective nodes comprises:

sending a signal to store the at least the portion of the list of video files on the respective nodes.

11. The method of claim 1 , wherein the at least the portion of the list of video files for a respective node is stored in a first portion of memory in the respective node, the first portion of memory being valid for the time period.

12. The method of claim 11 , wherein the respective node comprises a second portion of memory to store video files that are dynamically stored after a user account views the video files.

13. The method of claim 12 , wherein the respective node comprises a third portion of memory to store video files that are statically stored on the node, wherein the video files in the third portion do not change during the time period.

14. The method of claim 1 , wherein the plurality of nodes comprises a plurality of edge nodes that are situated at different points of a network that is used to deliver video files to client devices.

15. The method of claim 1 , further comprising:

generating a list of video files for each node in the plurality of nodes based on the second probabilities of which video files may be accessed and the first probabilities of which nodes may be used for each of the plurality of user accounts; and

causing at least a portion of a respective list of video files for each node to be stored on each node.

16. A non-transitory computer-readable storage medium having stored thereon computer executable instructions, which when executed by a computing device, cause the computing device to be operable for:

receiving a time period in which a plurality of video files will be delivered through a plurality of nodes to client devices;

generating a total number of user accounts to use the video delivery system in the time period,

determining a plurality of user accounts that may use a video delivery system to deliver the plurality of video files in the time period, wherein the total number of user accounts is used to predict the plurality of user accounts that may use the video delivery system, and wherein determining the plurality of user accounts that may use the video delivery system comprises:

generating a third probability for the plurality of user accounts that each respective user account may use the video delivery system based on the total number of user accounts to use the video delivery system in the time period;

generating first probabilities of which nodes in the plurality of nodes may be used to deliver video files in the plurality of video files to client devices for each of the plurality of user accounts in the time period, wherein nodes that deliver video files in the plurality of nodes are associated with respective first probabilities;

generating second probabilities of which video files the plurality of video files may be accessed by each of the plurality of user accounts, wherein video files in the plurality of video files are associated with respective second probabilities;

generating a list of video files for nodes in the plurality of nodes based on the second probabilities of which video files may be accessed and the first probabilities of which nodes may be used for each of the plurality of user accounts; and

causing at least a portion of the list of video files for respective nodes to be stored on the respective nodes for delivery to client devices.

17. The non-transitory computer-readable storage medium of claim 16 , wherein:

a video asset is associated with the plurality of video files, and

the second probabilities of which video files may be accessed by each of the plurality of user accounts include respective second probabilities for video files in the plurality of video files for each user.

18. The non-transitory computer-readable storage medium of claim 16 , wherein the at least the portion of the list of video files for a respective node is stored in a first portion of memory in the respective node, the first portion of memory being valid for the time period.

19. The non-transitory computer-readable storage medium of claim 18 , wherein:

the respective node comprises a second portion of memory to store video files that are dynamically stored after a user account views the video files, and

the respective node comprises a third portion of memory to store video files that are statically stored on the node, wherein the video files in the third portion do not change during the time period.

20. An apparatus comprising:

one or more computer processors; and

a computer-readable storage medium comprising instructions for controlling the one or more computer processors to be operable for:

generating a total number of user accounts to use the video delivery system in the time period;

determining a plurality of user accounts that may use a video delivery system to deliver the plurality of video files in the time period, wherein the total number of user accounts is used to predict the plurality of user accounts that may use the video delivery system, and wherein determining the plurality of user accounts that may use the video delivery system comprises:

generating a third probability for the plurality of user accounts that each respective user account may use the video delivery system based on the total number of user accounts to use the video delivery system in the time period;

generating first probabilities of which nodes in the plurality of nodes may be used to deliver video files in the plurality of video files to client devices for each of the plurality of user accounts in the time period, wherein nodes that deliver video files in the plurality of nodes are associated with respective first probabilities;

generating second probabilities of which video files the plurality of video files may be accessed by each of the plurality of user accounts, wherein video files in the plurality of video files are associated with respective second probabilities;

generating a list of video files for nodes in the plurality of nodes based on the second probabilities of which video files may be accessed and the first probabilities of which nodes may be used for each of the plurality of user accounts; and

causing at least a portion of the list of video files for respective nodes to be stored on the respective nodes for delivery to client devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2022
From: LI, XIAOCHENG; FENG, WEI; ZHANG, WENHAO; YANG, JIARUI
To: HULU, LLC
Reel/Frame 061187/0178 →
Continuity (3)
Division 16932512 · Jul 17, 2020
Provisional Application 62876506 · Jul 19, 2019
Related Publication 20230017663A1 · Jan 19, 2023
References Cited (10)
US 5704017A · Heckerman · 1997 [cited by examiner]
US 10277669B1 · Joliveau · 2019 [cited by examiner]
US 10986387B1 · Parulkar · 2021 [cited by examiner]
US 20070226182A1 · Sobotka · 2007 [cited by examiner]
US 20080320222A1 · Dhodapkar · 2008 [cited by examiner]
US 20090100188A1 · Li · 2009 [cited by examiner]
US 20120030209A1 · Bause et al. · 2012 [cited by applicant]
US 20140095804A1 · Lientz · 2014 [cited by applicant]
US 20140207912A1 · Thibeault et al. · 2014 [cited by applicant]
US 20220109713A1 · Huang · 2022 [cited by examiner]