IP Library Granted Patent US 12,235,823
Granted Patent B2
US 12,235,823 · App. 17/709,781 · Granted Feb 25, 2025

Method of making a file containing a secondary index recoverable during processing

Inventors: Kelsey L. Bruso (Minneapolis, MN); James M. Plasek (Eagan, MN)
Assignee: Unisys Corporation
G06F16/2343G06F16/2246G06F16/2322G06F16/2365
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 12,235,823
App. No.
17/709,781
Granted
Feb 25, 2025
Kind
B2
Abstract

A processor-based method of making a file containing a secondary index recoverable during processing of the secondary index includes: capturing a current system time as a captured system time and writing the captured system time to control information; finding writes to the file containing the secondary index; also writing the writes to an audit trail; using the captured system time in control information for the secondary index as a start time for recovery; determining if there is a primary key value in the control information; using a primary key value in the control information to traverse to a data page continuing the primary key value; placing a read-lock on the data page; creating a corresponding secondary index entry; and releasing the read-lock.

Claims (48)

1. A method of making a file containing a secondary index for a B-Tree in a database recoverable during building of the secondary index, the method comprising:

capturing a current system time as a captured system time and writing the captured system time to control information for the secondary index, wherein the current system time is a starting point for having to capture any subsequent table modifications corresponding to the B-tree;

finding writes to the file containing the secondary index;

writing the writes to an audit trail, wherein the writes to the file containing the secondary index correspond to the writes to the audit trail, making the file recoverable;

using the captured system time in the control information for the secondary index as a start time for recovery, wherein the audit trail keeps a record for updates made to the database, the entries in the audit trail appear in time order, and the entries from multiple users are interleaved in the audit trail;

determining if there is a primary key value in the control information;

using a primary key value in the control information to traverse the B-tree to a data page containing the primary key value;

placing a read-lock on the data page;

creating a corresponding secondary index entry from the data page in the secondary index; and

releasing the read-lock.

2. The processor-based method according to claim 1 , further comprising if there is not a primary key value determined and there is data already written to the secondary index, opening the audit trail and resume writing the writes to the audit trail starting at the captured system time.

3. The method according to claim 2 , further comprising:

making the secondary index visible to the DBMS for INSERT, UPDATE and DELETE processing;

reading a next committed set of database updates from the audit trail;

creating a secondary index modification for each row on each audit trail update and applying it to the secondary index; and

clearing the captured system time from control information for a B-tree to indicate completion; and

making the secondary index visible to the DBMS for all processing.

4. The processor-based method of claim 3 , further comprising determining if the end of the audit trail has been reached.

5. The processor-based method of claim 4 , further comprising if the end of the audit trail has been reached then proceeding with clearing the captured start time.

6. The processor-based method of claim 5 , further comprising if the end of the audit trail has not been reached returning to reading a next committed set of database updates from the audit trail.

7. The processor-based method of claim 6 , further comprising, continuing the steps until the end of the audit trail is processed through a current system time.

8. The processor-based method of claim 2 , further comprising, after opening the audit trail, determining if any committed updates started before the captured system time.

9. The processor-based method of claim 8 , further comprising if it is determined that no committed updates started before the captured system time then proceed to writing the writes to the audit trail starting at the captured system time.

10. The processor-based method of claim 9 , further comprising if it is determined that committed updates started before the captured system time, then creating a new start time and resume writing the writes to the audit trail starting at the new start time instead of the captured system time.

11. A computer program product, comprising: a non-transitory computer readable medium comprising instructions which, when executed by a processor of a computing system, cause the processor to perform the steps of:

making a file containing a secondary index for a B-Tree in a database recoverable during building of the secondary index, comprising:

capturing a current system time as a captured system time and writing the captured system time to control information for the secondary index, wherein the current system time is a starting point for having to capture any subsequent table modifications corresponding to the B-tree;

finding writes to a file containing the secondary index; writing the writes to an audit trail, wherein the writes to the file containing the secondary index correspond to the writes to the audit trail, making the file recoverable;

using the captured system time in the control information for the secondary index as a start time for recovery, wherein the audit trail keeps a record for updates made to athe database, the entries in the audit trail appear in time order, and the entries from multiple users are interleaved in the audit trail;

determining if there is a primary key value in the control information;

using a primary key value in the control information to traverse the B-tree to a data page containing the primary key value;

placing a read-lock on the data page;

creating a corresponding secondary index entry from the data page in the secondary index; and

releasing the read-lock.

12. The computer program product d according to claim 11 , further comprising if there is not a primary key value determined and there is data already written to the secondary index, opening the audit trail and resume writing the writes to the audit trail starting at the captured system time.

13. The computer program product according to claim 12 , further comprising:

making the secondary index visible to the DBMS for INSERT, UPDATE and DELETE processing;

reading a next committed set of database updates from the audit trail;

creating a secondary index modification for each row on each audit trail update and applying it to the secondary index; and

clearing the captured system time from control information for a B-tree to indicate completion; and

making the secondary index visible to the DBMS for all processing.

14. The computer program product of claim 13 , further comprising determining if the end of the audit trail has been reached.

15. The computer program product of claim 14 , further comprising if the end of the audit trail has been reached then proceeding with clearing the captured start time.

16. The computer program product of claim 15 , further comprising if the end of the audit trail has not been reached returning to reading a next committed set of database updates from the audit trail.

17. The computer program product of claim 16 , further comprising, continuing the steps until the end of the audit trail is processed through a current system time.

18. The computer program product of claim 12 , further comprising, after opening the audit trail, determining if any committed updates started before the captured system time.

19. The computer program product of claim 18 , further comprising if it is determined that no committed updates started before the captured system time then proceed to writing the writes to the audit trail starting at the captured system time.

20. The computer program product of claim 19 , further comprising if it is determined that committed updates started before the captured system time, then creating a new start time and resume writing the writes to the audit trail starting at the new start time instead of the captured system time.

Assignments (2)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2024
From: BRUSO, KELSEY L; PLASEK, JAMES M
To: UNISYS CORPORATION
Reel/Frame 067716/0184 →
Continuity (1)
Related Publication 20230315712A1 · Oct 5, 2023
References Cited (22)
US 4819156A · DeLorme · 1989 [cited by examiner]
US 5561795A · Sarkar · 1996 [cited by examiner]
US 5758356A · Hara · 1998 [cited by examiner]
US 6983295B1 · Hart · 2006 [cited by examiner]
US 10303699B1 · Holenstein · 2019 [cited by examiner]
US 20050021567A1 · Holenstein · 2005 [cited by examiner]
US 20060200501A1 · Holenstein · 2006 [cited by examiner]
US 20090276430A1 · Bruso · 2009 [cited by examiner]
US 20110264668A1 · Hacker · 2011 [cited by examiner]
US 20130290282A1 · Faerber · 2013 [cited by examiner]
US 20140136788A1 · Faerber · 2014 [cited by examiner]
US 20150254298A1 · Bourbonnais · 2015 [cited by examiner]
US 20160188690A1 · Tan · 2016 [cited by examiner]
US 20160321142A1 · Fang · 2016 [cited by examiner]
US 20160321145A1 · Fang · 2016 [cited by examiner]
US 20170004177A1 · Faerber · 2017 [cited by examiner]
US 20170193041A1 · Fuchs · 2017 [cited by examiner]
US 20180165327A1 · Graefe · 2018 [cited by examiner]
US 20190050442A1 · Benke · 2019 [cited by examiner]
US 20200320051A1 · Lee · 2020 [cited by examiner]
US 20210089401A1 · Park · 2021 [cited by examiner]
WO WO2020055977A1 · 2020 [cited by examiner]