IP Library › Granted Patent US 10,313,468
Granted Patent B2
US 10,313,468 · App. 14/740,879 · Granted Jun 4, 2019

Caching of metadata objects

Inventor: Sridhar Alla (Arlington, VA)
Assignee: Comcast Cable Communications, LLC
H04L67/2842H04L67/2804H04L67/2852
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,313,468
App. No.
14/740,879
Granted
Jun 4, 2019
Kind
B2
Abstract

Aspects described herein relate to processing metadata requests using a cache. For example, a metadata object, such as a JavaScript Object Notation (JSON) object, may be processed into two or more portions. The two or more portions or data generated based on the two or more portions may be stored into a cache. After receiving a request for the metadata object from a computing device, the metadata object may be generated based on the data stored in the cache and the generated metadata object may be transmitted as a response to the request for the metadata object. Further aspects relate to personalizing the metadata object at the cache prior to transmitting the response to the request for the metadata object. Further aspects relate to updating a portion of the metadata object, such as a portion that includes dynamic data, prior to transmitting the response to the request.

Claims (84)

1. A method comprising:

determining, by a first cache device, from a first JavaScript Object Notation (JSON) object, a portion of static data and a portion of dynamic data;

storing the portion of static data in a first cache and the portion of dynamic data in a second cache;

based on receiving, from a first computing device, a first request for a metadata object associated with at least one content item, retrieving the portion of static data from the first cache and the portion of dynamic data from the second cache;

generating, based on the portion of static data and the portion of dynamic data, a second JSON object associated with the at least one content item; and

sending, to the first computing device, the second JSON object.

2. The method of claim 1 , further comprising:

requesting, by the first cache device, an update to the portion of dynamic data;

storing, in the second cache, the update to the portion of dynamic data; and

based on receiving, from a second computing device, a second request for the metadata object associated with the at least one content item;

retrieving the portion of static data from the first cache and the update to the portion of dynamic data from the second cache;

generating, based on the portion of static data and the update to the portion of dynamic data, a third JSON object associated with the at least one content item; and

sending, to the second computing device, the third JSON object.

3. The method of claim 2 , wherein the portion of static data comprises an identifier for a program, an identifier for an episode, or an identifier for a showing, and wherein the portion of dynamic data comprises an indication of:

an availability date for the program, an availability date for the episode, or an availability date for the showing;

an expiration date for the program, an expiration date for the episode, or an expiration date for the showing; or

a score for ordering the program, a score for ordering the episode, or a score for ordering the showing.

4. The method of claim 1 , further comprising:

requesting, by the first cache device, personalization metadata;

wherein generating the second JSON object is further based on the personalization metadata and results in a personalized second JSON object; and

wherein sending the second JSON object is performed by sending the personalized second JSON object.

5. The method of claim 4 , wherein generating the second JSON object comprises re-ordering, based on the personalization metadata or re-ranking, based on the personalization metadata, two or more programs of the second JSON object, two or more episodes of the second JSON object, or two or more showings of the second JSON object.

6. The method of claim 4 , wherein generating the second JSON object further comprises:

adding, based on the personalization metadata, a program to or removing a program from the second JSON object,

adding, based on the personalization metadata, an episode to or removing an episode from the second JSON object, or

adding, based on the personalization metadata, a showing to or removing a showing from the second JSON object.

7. A method comprising:

determining, by a cache device, from a first JavaScript Object Notation (JSON) object, a portion of static data and a portion of dynamic data;

generating a first storage object based on the portion of static data and a second storage object based on the portion of dynamic data;

storing the first storage object in a first cache and the second storage object in a second cache;

based on receiving, from a computing device, a request for a metadata object associated with at least one content item, retrieving the first storage object from the first cache and the second storage object from the second cache;

generating, by the cache device and based on the first storage object and the second storage object, a second JSON object associated with the at least one content item; and

sending, to the computing device, the second JSON object.

8. The method of claim 7 , wherein the second JSON object comprises a menu object, a program object, an episode object, and a showing object.

9. The method of claim 8 , wherein the program object comprises a first static data value from the portion of static data and a first dynamic data value from the portion of dynamic data, wherein the episode object comprises a second static data value from the portion of static data and a second dynamic data value from the portion of dynamic data, and wherein the showing object comprises a third static data value from the portion of static data and a third dynamic data value from the portion of dynamic data.

10. The method of claim 9 , wherein the first static data value comprises a first identifier for a program;

wherein the first dynamic data value comprises a first indication of:

an availability date for the program,

an expiration date for the program, or

a score for ordering the program;

wherein the second static data value comprises a second identifier for an episode;

wherein the second dynamic data value comprises a second indication of:

an availability date for the episode,

an indication of expiration date for the episode, or

an indication of a score for ordering the episode;

wherein the third static data value comprises a third identifier for a showing; and

wherein the third dynamic data value comprises a third indication of:

an availability date for the showing,

an indication of an expiration date for the showing, or

a score for ordering the showing.

11. The method of claim 8 , further comprising:

receiving, by the cache device and from a central database, an update to the portion of dynamic data; and

updating, based on the update to the portion of dynamic data, one or more of the menu object, the program object, the episode object, or the showing object.

12. The method of claim 7 , wherein storing the first storage objects comprises storing the first storage objects in at least one B+ tree.

13. The method of claim 7 , further comprising:

requesting, by the cache device, personalization metadata;

wherein generating the second JSON object is further based on the personalization metadata and results in a personalized JSON object; and

wherein sending the second JSON object is performed by sending the personalized JSON object.

14. The method of claim 13 , wherein generating the second JSON object further comprises:

re-ordering, based on the personalization metadata, or re-ranking, based on the personalization metadata, two or more programs of the second JSON object, two or more episodes of the second JSON object, or two or more showings of the second JSON object, or

adding a program to or removing a program from the second JSON object, adding an episode to or removing an episode from the second JSON object, or adding a showing to or removing a showing from the second JSON object.

15. A method comprising:

receiving, by a first computing device, a first request for a first JavaScript Object Notation (JSON) object, wherein the first request is associated with a process for populating a first menu at a first user device;

based on the first request, determining that the first JSON object is not stored in one or more caches external to the first computing device;

based on determining that the first JSON object is not stored in the one or more caches, sending a second request for the first JSON object;

based on receiving the first JSON object, determining, from the first JSON object, a portion of static data and a portion of dynamic data;

generating one or more first storage objects based on the portion of static data and one or more second storage objects based on the portion of dynamic data;

storing the one or more first storage objects in a first cache and the one or more second storage objects in a second cache;

sending, to the first user device, the first JSON object;

receiving, by the first computing device, a third request for the first JSON object, wherein the third request is associated with a process for populating a second menu at a second user device;

based on the second request, determining that the first JSON object comprises the one or more first storage objects and the one or more second storage objects;

retrieving the one or more first storage objects from the first cache and the one or more second storage objects from the second cache;

generating, based on the one or more first storage objects and the one or more second storage objects, a second JSON object that comprises an identifier for the first JSON object; and

sending, to the second user device, the second JSON object.

16. The method of claim 15 , further comprising:

requesting, from a personalization database, personalization metadata;

wherein generating the second JSON object is further based on the personalization metadata and results in a personalized second JSON object; and

wherein sending the second JSON object is performed by sending the personalized second JSON object.

17. The method of claim 16 , further comprising:

sending, based on receiving an index status check from the first computing device, an indication that an index has changed; and

based on sending the indication that the index has changed, sending, to the first computing device, an update to one or more name/value pairs of the first JSON object.

18. The method of claim 15 , wherein the second JSON object comprises a menu object, a program object, an episode object, and a showing object.

19. The method of claim 1 , wherein the first request for the metadata object comprises an identifier for the first JSON object, and wherein the second JSON object comprises the identifier for the first JSON object.

20. The method of claim 1 , wherein storing the portion of static data comprises storing the portion of static data in at least one B+ tree data structure of the first cache.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2015
From: ALLA, SRIDHAR
To: COMCAST CABLE COMMUNICATIONS, LLC
Reel/Frame 035848/0613 →
Continuity (1)
Related Publication 20160373543A1 · Dec 22, 2016