IP Library Granted Patent US 8,843,449
Granted Patent B2
US 8,843,449 · App. 12/485,664 · Granted Sep 23, 2014

Unobtrusive copies of actively used compressed indices

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 8,843,449
App. No.
12/485,664
Granted
Sep 23, 2014
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 (47)

1. A general purpose computer comprising:

at least one processor; and

at least one storage device tangibly embodying program instructions that, when executed by the at least one processor, are configured to cause the general purpose computer to at least:

for each of a plurality of pages associated with a target index:

write the page to external storage; and

store a time of the writing the page to the external storage as an externalization time of the page; and

after performing the writing and the storing:

determine which pages in a buffer memory are associated with the target index;

identify an externalization point of the target index, the externalization point corresponding to an oldest change to a page associated with the target index that has not been written to the external storage;

for each of the pages associated with the target index that is stored in the buffer memory, if the externalization point of the target index is earlier than the externalization time of the page, write the page from the buffer memory to an output file; and

for each of the pages associated with the target index that is not stored in the buffer memory, and each of the pages associated with the target index and stored in the buffer memory for which the externalization point of the target index is later than the externalization time of the page, copy the page from the external storage to the output file without bringing the page into the buffer memory.

2. The general purpose computer of claim 1 , wherein the writing the page to the external storage and the storing the time of the writing the page to the external storage are performed without employing locks on the target index.

3. The general purpose computer of claim 1 , wherein the program instructions are further configured to cause the general purpose computer to compress the pages using a technique wherein the compression of a first page of the target index does not affect content of a second page of the target index.

4. The general purpose computer of claim 1 , wherein the target index comprises an encrypted compressed index.

5. The general purpose computer of claim 1 , wherein the identifying the externalization point of the target index comprises:

identifying one or more pages of the target index that are in a working memory, uncompressed and accessible to the general purpose computer;

determining the oldest change to the page of the target index that is in the working memory, uncompressed and accessible to the general purpose computer; and

identifying the determined oldest change as the externalization point.

6. The general purpose computer of claim 1 , wherein the storing the time of the writing the page comprises storing a single time of the writing the page to the external storage as the externalization time of the page.

7. The general purpose computer of claim 1 , wherein the storing the time of the writing the page comprises storing a plurality of times of the writing the page to the external storage as externalization times of the page, wherein each of the plurality of externalization times represents an externalization time for a different portion of the page.

8. The general purpose computer of claim 1 , wherein the storing is performed substantially independent of the general purpose computer.

9. The general purpose computer of claim 1 , wherein the storing the time of the writing as the externalization time of the page comprises:

recording an identifier for the stored page;

recording the externalization time; and

associating the recorded externalization time with the recorded identifier for the stored page.

10. The general purpose computer of claim 9 , wherein the associating the recorded externalization time with the recorded identifier comprises recording the identifier for the stored page and the externalization time in a common database record.

11. The general purpose computer of claim 1 , wherein the externalization time is identified by an address representing an entry in a log file corresponding to a time at which the page was modified.

12. A non-transitory program storage device, readable by a programmable control device, comprising program instructions stored on the non-transitory program storage device for causing the programmable control device to perform at least the following:

for each of a plurality of pages associated with a target index:

write the page to external storage; and

store a time of the writing the page to the external storage as an externalization time of the page; and

after performing the writing and the storing:

determine which pages in a buffer memory are associated with the target index;

identify an externalization point of the target index, the externalization point corresponding to an oldest change to a page associated with the target index that has not been written to the external storage;

for each of the pages associated with the target index that is stored in the buffer memory, if the externalization point of the target index is earlier than the externalization time of the page, write the page from the buffer memory to an output file; and

for each of the pages associated with the target index that is not stored in the buffer memory, and each of the pages associated with the target index and stored in the buffer memory for which the externalization point of the target index is later than the externalization time of the page, copy the page from the external storage to the output file without bringing the page into the buffer memory.

13. A computer network executing a method to backup a target index, the computer network comprising:

a first storage device having stored thereon at least a portion of the target index, the first storage device being external to a computer system;

the computer system communicatively coupled to the first storage device, the computer system having memory, the memory having stored therein at least one page of the target index and program instructions for causing the computer system to perform at least the following:

for each of a plurality of pages associated with the target index:

write the page to the first storage device; and

store a time of the writing the page to the first storage device as an externalization time of the page; and

after performing the writing and the storing:

determine which pages in a buffer memory are associated with the target index;

identify an externalization point of the target index, the externalization point corresponding to an oldest change to a page associated with the target index that has not been written to the first storage device;

for each of the pages associated with the target index that is stored in the buffer memory, if the externalization point of the target index is earlier than the externalization time of the page, write the page from the buffer memory to a second storage device; and

for each of the pages associated with the target index that is not stored in the buffer memory, and each of the pages associated with the target index and stored in the buffer memory for which the externalization point of the target index is later than the externalization time of the page, copy the page from the first storage device to the second storage device without bringing the page into the buffer memory.

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 (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 AGREEMENT Recorded Sep 11, 2013
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031204/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2009
From: PRICE, THOMAS G.; CLINE, RICHARD W.
To: BMC SOFTWARE, INC.
Reel/Frame 022833/0001 →