IP Library Granted Patent US 10,140,359
Granted Patent B2
US 10,140,359 · App. 15/857,505 · Granted Nov 27, 2018

Distributed database management system

Inventors: Brian Beach (Santa Cruz, CA); David C. Platt (Mountain View, CA)
Assignee: TiVo Solutions Inc.
G06F17/30598G06F11/1417G06F11/2094G06F17/30309G06F17/30327G06F17/30545G06F17/30566G06F17/30575G06F17/30589G11B27/005G11B27/34H04L63/10H04L67/1002H04L67/108H04N5/4401H04N5/44543H04N5/44582H04N5/782H04N9/79H04N9/8042H04N21/2181H04N21/235H04N21/2351H04N21/23109H04N21/23113H04N21/252H04N21/25816H04N21/25833H04N21/25891H04N21/2625H04N21/2665H04N21/26613H04N21/4147H04N21/42607H04N21/435H04N21/4332H04N21/4335H04N21/4353H04N21/44222H04N21/4532H04N21/4583H04N21/6187H04N21/6582G06F11/2097G06F2201/80G06F2201/82G11B27/032G11B27/036G11B2220/2545G11B2220/2562G11B2220/90H04L67/10H04L67/42H04N5/775H04N5/781H04N5/783H04N9/7921H04N9/8063H04N9/8205Y10S707/99945
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,140,359
App. No.
15/857,505
Granted
Nov 27, 2018
Kind
B2
Abstract

A distributed database management system provides a central database resident on a server that contains database objects. Objects, e.g., program guide data, to be replicated are gathered together into distribution packages called “slices,” that are transmitted to client devices. A slice is a subset of the central database which is relevant to clients within a specific domain, such as a geographic region, or under the footprint of a satellite transmitter. The viewer selects television programs and Web content from displayed sections of the program guide data which are recorded to a storage device. The program guide data are used to determine when to start and end recordings. Client devices periodically connect to the server using a phone line and upload information of interest which is combined with information uploaded from other client devices for statistical, operational, or viewing models.

Claims (45)

1. A method for storing a data object with dependency information, the method comprising:

generating a dependency attribute for a first data object, the dependency attribute comprising dependency data indicative of a second data object, wherein the first data object depends on the second data object such that a client device requires the second data object to utilize the first data object;

receiving, at the client device, the first data object;

determining, at the client device, whether the database stored on the client device contains the second data object;

in response to determining that the database contains the second data object, storing the first data object in the database;

in response to determining that the database does not contain the second data object:

storing the first data object in a holding area;

in response to determining that the first data object and the second data object are stored in the holding area, storing the first data object and the second data object in the database in a single atomic transaction.

2. The method of claim 1 , wherein generating the dependency attribute for the first data object comprises generating a list of all data objects that the client device requires to utilize the first data object.

3. The method of claim 2 , further comprising:

determining, at the client device, whether the database stored on the client device contains all data objects of the list; and

in response to determining that the database does not contain at least one of the data objects of the list:

storing the first data object in the holding area; and

in response to determining that the first data object and all data objects of the list are stored in the holding area, storing the first data object in the database.

4. The method of claim 2 , further comprising:

in response to determining that the first data object and all data objects of the list are stored in the holding area, storing in the database all objects that stored in the holding area.

5. The method of claim 4 , wherein all objects that are stored in the holding area are stored in the database in a single atomic transaction.

6. The method of claim 4 , further comprising:

maintaining a dependency graph for all objects in the holding area and all objects in the database; and

wherein data objects are stored in the database only when the dependency graph is closed.

7. The method of claim 1 , wherein the first object is a showing object that comprises information describing a specific time on a specific television channel.

8. The method of claim 7 , wherein the second object is a program object that comprises information describing a specific television program.

9. A system for storing a data object with dependency information, the system comprising:

a client device configured to:

generate a dependency attribute for a first data obj ect, the dependency attribute comprising dependency data indicative of a second data object, wherein the first data object depends on the second data object such that the client device requires the second data object to utilize the first data object;

receive the first data object;

determine whether the database stored on the client device contains the second data object;

in response to determining that the database contains the second data object, store the first data object in the database;

in response to determining that the database does not contain the second data object:

store the first data object in a holding area;

in response to determining that the first data object and the second data object are stored in the holding area, store the first data object and the second data object in the database in a single atomic transaction.

10. The system of claim 9 , wherein the client device is further configured, when generating the dependency attribute for the first data object, to generate a list of all data objects that the client device requires to utilize the first data object.

11. The system of claim 10 , wherein the client device is further configured to:

determine, at the client device, whether the database stored on the client device contains all data objects of the list; and

in response to determining that the database does not contain at least one of the data objects of the list:

store the first data object in the holding area; and

in response to determining that the first data object and all data objects of the list are stored in the holding area, store the first data object in the database.

12. The system of claim 10 , wherein the client device is further configured to:

in response to determining that the first data object and all data objects of the list are stored in the holding area, store in the database all objects that stored in the holding area.

13. The system of claim 12 , wherein all objects that are stored in the holding area are stored in the database in a single atomic transaction.

14. The system of claim 12 , wherein the client device is further configured to:

maintain a dependency graph for all objects in the holding area and all objects in the database; and

store data objects in the database only when the dependency graph is closed.

15. The system of claim 9 , wherein the first object is a showing object that comprises information describing a specific time on a specific television channel.

16. The system of claim 15 , wherein the second object is a program object that comprises information describing a specific television program.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2018
From: BEACH, BRIAN; PLATT, DAVID
To: TIVO INC.
Reel/Frame 046003/0928 →
CHANGE OF NAME Recorded Jun 6, 2018
From: TIVO INC.
To: TIVO SOLUTIONS INC.
Reel/Frame 046003/0941 →
Continuity (7)
Continuation 15412600 · Jan 23, 2017
Continuation 14550857 · Nov 21, 2014
Continuation 13934084 · Jul 2, 2013
Continuation 10828921 · Apr 20, 2004
Continuation 09422139 · Oct 20, 1999
Provisional Application 60127178 · Mar 30, 1999
Related Publication 20180144044A1 · May 24, 2018