IP Library Granted Patent US 10,339,159
Granted Patent B2
US 10,339,159 · App. 15/699,582 · Granted Jul 2, 2019

Overlay dataset

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,339,159
App. No.
15/699,582
Granted
Jul 2, 2019
Kind
B2
Abstract

Overlay datasets provide an efficient, flexible and scalable mechanism to represent the logical replication of one or more prior defined datasets. Only changes made to an entity in an overlay dataset's underlying dataset are replicated into the overlay dataset (such changes do not affect the underlying dataset). Read operations directed to the overlay dataset will find entities in the overlay dataset if they exist and in the underlying dataset(s) if no overlay-specific entity exists. Accordingly, overlay datasets provide an efficient mechanism for making changes to an existing dataset without suffering the high processing time and storage overhead associated with prior art copying and versioning techniques. Overlay datasets also provide a natural mechanism to keep two or more datasets in synchronization because changes to a base or underlying dataset's entities are “visible” in its associated overlay dataset (unless the entity has been modified in the overlay dataset).

Claims (47)

1. A computer-implemented method comprising:

creating an overlay dataset that references a plurality of base datasets, each of the base datasets including a plurality of entities, the overlay dataset and the plurality of base datasets being collections of data included in a database, the creating of the overlay dataset including setting a dataset type attribute included in an overlay dataset object associated with the overlay dataset to an overlay dataset value, the overlay dataset value identifying a dataset as an overlay dataset;

receiving a request for access to an entity, the request designating a dataset;

determining that the entity is not included in the designated dataset;

responsive to determining that the entity is not included in the designated dataset, determining that the designated dataset is the overlay dataset based in part on determining that the dataset type attribute included in the dataset object is set to the overlay dataset value;

determining that the entity is one of the plurality of entities included in one of the plurality of base datasets;

retrieving the entity from the one of the plurality of base datasets, the retrieving comprising reading through the overlay dataset to the one of the plurality of base datasets; and

returning the entity retrieved from the one of the plurality of base datasets in response to the request for access to the entity that designated the dataset.

2. The computer-implemented method of claim 1 , wherein the creating of the overlay dataset further includes setting a source dataset identifier included in the dataset object associated with the overlay dataset to a semicolon delimited list of identifiers, each identifier being for an associated base dataset included in the plurality of base datasets.

3. The computer-implemented method of claim 1 , wherein the database is an object-oriented database, and wherein an entity is an object.

4. The computer-implemented method of claim 1 , wherein the database is a relational database, and wherein an entity is a record.

5. The computer-implemented method of claim 1 , wherein the database is a configuration management database, and wherein an entity is a configuration item.

6. The computer-implemented method of claim 1 , further comprising:

modifying the entity retrieved from the one of the plurality of base datasets, the modifying comprising copying the entity into the overlay dataset.

7. The computer-implemented method of claim 1 , wherein the overlay dataset, when created, includes no instances, elements, or records.

8. A non-transitory machine-readable medium having instructions stored thereon that, when executed by a processor, cause a computing device to:

create an overlay dataset that references a plurality of base datasets, each of the base datasets including a plurality of entities, the overlay dataset and the plurality of base datasets being collections of data included in a database, the creating of the overlay dataset including setting a dataset type attribute included in an overlay dataset object associated with the overlay dataset to an overlay dataset value, the overlay dataset value identifying a dataset as an overlay dataset;

receive a request for access to an entity, the request designating a dataset;

determine that the entity is not included in the designated dataset;

responsive to determining that the entity is not included in the designated dataset, determine that the designated dataset is the overlay dataset based in part on determining that the dataset type attribute included in the dataset object is set to the overlay dataset value;

determine that the entity is one of the plurality of entities included in one of the plurality of base datasets;

retrieve the entity from the one of the plurality of base datasets, the retrieving comprising reading through the overlay dataset to the one of the plurality of base datasets; and

returning the entity retrieved from the one of the plurality of base datasets in response to the request for access to the entity that designated the dataset.

9. The non-transitory machine-readable medium of claim 8 , wherein the creating of the overlay dataset further includes setting a source dataset identifier included in the dataset object associated with the overlay dataset to a semicolon delimited list of identifiers, each identifier being for an associated base dataset included in the plurality of base datasets.

10. The non-transitory machine-readable medium of claim 8 , wherein the database is an object-oriented database, and wherein an entity is an object.

11. The non-transitory machine-readable medium of claim 8 , wherein the database is a relational database, and wherein an entity is a record.

12. The non-transitory machine-readable medium of claim 8 , wherein the database is a configuration management database, and wherein an entity is a configuration item.

13. The non-transitory machine-readable medium of claim 8 , wherein the instructions, when executed by the processor, further cause the computing device to:

modify the entity retrieved from the one of the plurality of base datasets, the modifying comprising copying the entity into the overlay dataset.

14. The non-transitory machine-readable medium of claim 8 , wherein the overlay dataset, when created, includes no instances, elements, or records.

15. A system comprising:

at least one memory including instructions on a computing device; and

at least one processor on the computing device, wherein the processor is operably coupled to the at least one memory and is arranged and configured to execute the instructions that, when executed, cause the processor to implement:

creating an overlay dataset that references a plurality of base datasets, each of the base datasets including a plurality of entities, the overlay dataset and the plurality of base datasets being collections of data included in a database, the creating of the overlay dataset including setting a dataset type attribute included in an overlay dataset object associated with the overlay dataset to an overlay dataset value, the overlay dataset value identifying a dataset as an overlay dataset;

receiving a request for access to an entity, the request designating a dataset;

determining that the entity is not included in the designated dataset;

responsive to determining that the entity is not included in the designated dataset, determining that the designated dataset is the overlay dataset based in part on determining that the dataset type attribute included in the dataset object is set to the overlay dataset value;

determining that the entity is one of the plurality of entities included in one of the plurality of base datasets;

retrieving the entity from the one of the plurality of base datasets, the retrieving comprising reading through the overlay dataset to the one of the plurality of base datasets; and

returning the entity retrieved from the one of the plurality of base datasets in response to the request for access to the entity that designated the dataset.

16. The system of claim 15 , wherein the creating of the overlay dataset further includes setting a source dataset identifier included in the dataset object associated with the overlay dataset to a semicolon delimited list of identifiers, each identifier being for an associated base dataset included in the plurality of base datasets.

17. The system of claim 15 , wherein the database is an object-oriented database, and wherein an entity is an object.

18. The system of claim 15 , wherein the database is a relational database, and wherein an entity is a record.

19. The system of claim 15 , wherein the database is a configuration management database, and wherein an entity is a configuration item.

20. The system of claim 15 , wherein the instructions, when executed by the processor, further cause the processor to implement:

modifying the entity retrieved from the one of the plurality of base datasets, the modifying comprising copying the entity into the overlay dataset.

21. The system of claim 15 , wherein the overlay dataset, when created, includes no instances, elements, or records.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY INTEREST Recorded Jun 22, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046176/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2017
From: MUELLER, DOUGLAS; CHEN, JIANI
To: BMC SOFTWARE, INC.
Reel/Frame 043554/0976 →