IP Library Granted Patent US 10,642,696
Granted Patent B2
US 10,642,696 · App. 15/680,718 · Granted May 5, 2020

Copying compressed pages without uncompressing the compressed pages

Inventors: Thomas G. Price (Austin, TX); Richard W. Cline (Austin, TX)
Assignee: BMC Software, Inc.
G06F11/1446G06F11/1451G06F11/1466G06F16/2272G06F2201/80
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,642,696
App. No.
15/680,718
Granted
May 5, 2020
Kind
B2
Abstract

Methods, devices and systems to make compressed backup copies of in-use compressed database indices are described. In general, an “oldest” time at which index pages in working memory had been updated is identified. Compressed index pages may be directly copied without the need to bring them into working memory or uncompressing them. The identified “oldest” time is then associated with the compressed backup copy. In some embodiments, an entire compressed backup copy may be associated with a single point in time (e.g., the identified “oldest” time). In other embodiments, a compressed backup copy may be associated with multiple points in time (e.g., one time for each portion of the compressed index that is being backed-up). Compressed indices copied in accordance with the invention may be used during restore operations to reconstruct database indices using the identified “oldest” time and database log files.

Claims (44)

1. A non-transitory storage device tangibly embodying program instructions that, when executed by a processor, are configured to cause a general purpose computer to:

identify a target in-use compressed index stored in storage, a first portion of the target in-use compressed index being uncompressed and in working memory and accessed by a first process and a second process through a first application and a second application, the first application being different than the second application, a second portion of the target in-use compressed index being compressed;

identify an externalization point for the target in-use compressed index, the externalization point being a time of oldest change to the target in-use compressed index that has not been externalized to storage;

copy compressed pages of the target in-use compressed index from the storage to one or more files without uncompressing the compressed pages, the copied and compressed pages being a compressed backup copy; and

record an identifier and the externalization point for the compressed backup copy in a log.

2. The storage device of claim 1 , wherein:

the compressed pages of the target in-use compressed index are partitioned into multiple data sets; and

the copying compressed pages includes copying compressed pages of the target in-use compressed index from the storage to multiple compressed files.

3. The storage device of claim 1 , wherein the instructions are configured to cause the general purpose computer to identify the target in-use compressed index, identify the externalization point, copy the compressed pages, and record the identifier and externalization point without employing locks.

4. The storage device of claim 1 , wherein identifying the target in-use compressed index comprises identifying the target in-use compressed index and one or more data sets in the target in-use compressed index to be backed up.

5. The storage device of claim 4 , wherein the instructions are further configured to cause the general purpose computer to determine whether all of the data sets have been copied.

6. The storage device of claim 1 , wherein each portion of the compressed backup copy is associated with a time tag, the time tag indicating a time at which the portion was last externalized before the compressed backup copy was made.

7. The storage device of claim 1 , wherein the instructions are further configured to cause the general purpose computer to:

break the target in-use compressed index into multiple partitions;

copy the partitioned target in-use compressed index into multiple compressed files; and

record an externalization point for each of the multiple compressed files in the log.

8. The storage device of claim 1 , wherein the target in-use compressed index comprises an encrypted compressed index.

9. The storage device of claim 1 , wherein the identifying the externalization point comprises identifying a single externalization point for the target in-use compressed index.

10. The storage device of claim 1 , wherein the identifying the externalization point comprises identifying a plurality of externalization points, each of the plurality of externalization points representing an externalization point for a different portion of the target in-use compressed index.

11. The storage device of claim 1 , wherein the instructions are further configured to cause the general purpose computer to associate the recorded identifier with the recorded externalization point.

12. The storage device of claim 1 , wherein the target in-use compressed index was compressed using a technique wherein compression of a first page of the target in-use compressed index did not affect content of a second page of the target in-use compressed index.

13. The storage device of claim 1 , wherein an uncompressed version of a page of the target in-use compressed index in working memory is locked, preventing the uncompressed version of the page from being updated.

14. A method comprising:

identifying a target in-use compressed index stored in storage, a first portion of the target in-use compressed index being uncompressed and in working memory and accessed by a first process and a second process through a first application and a second application, the first application being different than the second application, a second portion of the target in-use compressed index being compressed;

identifying an externalization point for the target in-use compressed index, the externalization point being a time of oldest change to the target in-use compressed index that has not been externalized to storage;

copying compressed pages of the target in-use compressed index from the storage to one or more files without uncompressing the compressed pages, the copied and compressed pages being a compressed backup copy; and

recording an identifier and the externalization point for the compressed backup copy in a log.

15. The method of claim 14 , wherein:

the compressed pages of the target in-use compressed index are partitioned into multiple data sets; and

the copying compressed pages includes copying compressed pages of the target in-use compressed index from the storage to multiple compressed files.

16. The method of claim 14 , wherein the identifying the target in-use compressed index, identifying the externalization point, copying the compressed pages, and recording the identifier and externalization point are performed without employing locks.

17. The method of claim 14 , wherein identifying the target in-use compressed index comprises identifying the target in-use compressed index and one or more data sets in the target in-use compressed index to be backed up.

18. The method of claim 14 , wherein each portion of the compressed backup copy is associated with a time tag, the time tag indicating a time at which the portion was last externalized before the compressed backup copy was made.

19. The method of claim 14 , further comprising:

breaking the target in-use compressed index into multiple partitions;

copying the partitioned target in-use compressed index into multiple compressed files; and

recording an externalization point for each of the multiple compressed files in the log.

20. A computing system comprising:

a processor; and

a non-transitory storage device tangibly embodying program instructions that, when executed by the processor, are configured to cause the computing system to:

identify a target in-use compressed index stored in storage, a first portion of the target in-use compressed index being uncompressed and in working memory and accessed by a first process and a second process through a first application and a second application, a second portion of the target in-use compressed index being compressed;

identify an externalization point for the target in-use compressed index, the externalization point being a time of oldest change to the target in-use compressed index that has not been externalized to storage;

copy compressed pages of the target in-use compressed index from the storage to one or more files without uncompressing the compressed pages, the copied and compressed pages being a compressed backup copy; and

record an identifier and the externalization point for the compressed backup copy in a log.

Assignments (13)
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 (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 →
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 →
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 Aug 21, 2017
From: PRICE, THOMAS G.; CLINE, RICHARD W.
To: BMC SOFTWARE, INC.
Reel/Frame 043344/0576 →