IP Library Granted Patent US 9,128,976
Granted Patent B2
US 9,128,976 · App. 14/185,563 · Granted Sep 8, 2015

Offline restructuring of DEDB databases

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 9,128,976
App. No.
14/185,563
Granted
Sep 8, 2015
Kind
B2
Abstract

An IMS DEDB database restructure operation creates an empty offline DEDB having the desired structure. The offline database is populated with data from a source (online) database while keeping the source database online (i.e., available for access and update operations). Updates to the source database made during this process are selectively processed in parallel with the offline DEDB load operation. When the contents of the offline database is substantially the same as the source or online database, the source database is taken offline, final updates to the offline database are applied whereafter the offline database is brought online, thereby replacing the source database. It is significant to note that updates occurring to the source or online DEDB are applied to the offline DEDB.

Claims (76)

1. A method for changing a randomizer function in a Data Entry Data Base (DEDB), the method comprising:

registering, using at least one processor, an area of an active DEDB with a change module, the registered area of the active DEDB having a first randomizer function, the first randomizer function being used to determine a location of a database record within the registered area;

allocating, using the at least one processor, an area for an offline shadow DEDB, the area for the offline shadow DEDB having a second randomizer function that differs from the first randomizer function;

populating the area of the offline shadow DEDB with data from the registered area of the active DEDB and, during the populating:

identifying a modification to the active DEDB, and

in response to determining that the modification is directed to the registered area, reflecting the modification in the offline shadow DEDB;

replacing the area of the active DEDB with the area of the shadow DEDB; and

making the area of the shadow DEDB database active.

2. The method of claim 1 , wherein the registered area represents less than the entire active DEDB.

3. The method of claim 1 , wherein the modification is an update to a first database record at a first location in the registered area and reflecting the modification in the offline shadow DEDB includes using the second randomizer function to determine a second location for the first database record in the area of the offline shadow DEDB.

4. The method of claim 3 , wherein reflecting the modification in the offline shadow DEDB further includes:

determining whether the first location occurs in a unit of work already populated in the offline shadow DEDB;

ignoring the update when it is determined that the modification does not occur in a unit of work already populated in the offline shadow DEDB; and

applying the update at the second location in the area of the offline shadow DEDB when the update does occur in a unit of work already populated in the offline shadow DEDB.

5. The method of claim 1 , further comprising:

determining whether a small number of modifications await to be applied to the offline shadow DEDB;

quiescing the registered area of the active DEDB;

applying the small number of modifications to the offline shadow DEDB; and

performing the replacing after applying the small number of modifications.

6. The method of claim 1 , wherein reflecting the modification in the offline shadow DEDB includes:

identifying a key for the modification;

transforming the key using the second randomizer function to determine a location; and

writing a database record from the modification at the location.

7. A non-transitory program storage device comprising instructions for causing a programmable control device to perform the method of claim 1 .

8. A computer system comprising:

a first storage device having stored therein an online data entry database (DEDB) having a first area, the first area having a first randomizer function that is used to determine a location of a particular record within the area;

a database management system (DBMS) communicatively coupled to the first storage device, wherein the DBMS is configured to modify the online DEDB;

at least one processor; and

a memory storing instructions that, when executed by at least one processor, cause the computer system to perform operations comprising:

registering an area of an active DEDB with a change module,

allocating an offline shadow DEDB having a second area, the second area having a second randomizer function that differs from the first randomizer function,

populating the second area with data from the registered area while the second area is offline and, during the populating:

receiving a notification of a modification to the online DEDB from the DBMS, and

in response to determining that the modification is directed to the registered area, reflecting the modification in the second area,

replacing the area of the online DEDB with the second area, and

making the second area active.

9. The computer system of claim 8 , wherein the registered area represents less than the entire active DEDB.

10. The computer system of claim 8 , wherein populating the second area includes:

quiescing a first unit of work (UOW) in the area of the active DEDB;

notifying the change module that the first UOW has been copied to the offline shadow DEDB;

reading the first UOW from the active DEDB;

writing the first UOW into the offline shadow DEDB; and

releasing the first UOW so that it may be updated in the active DEDB.

11. The computer system of claim 8 , wherein the modification is an update to a first database record at a first location in the registered area and reflecting the modification in the second area includes using the second randomizer function to determine a second location for the first database record in the second area.

12. The computer system of claim 11 , wherein reflecting the modification in the second area further includes:

determining whether the first location occurs in a unit of work already populated in the offline shadow DEDB;

ignoring the update when it is determined that the modification does not occur in a unit of work already populated in the offline shadow DEDB; and

applying the update at the second location in the second area when the update does occur in a unit of work already populated in the offline shadow DEDB.

13. The computer system of claim 8 , wherein the instructions further include instructions that, when executed by the at least one processor, cause the computer system to perform operations comprising:

determining whether a small number of modifications await to be applied to the second area;

quiescing the registered area of the active DEDB;

applying the small number of modifications to the second area; and

performing the replacing after applying the small number of modifications.

14. The computer system of claim 8 , wherein reflecting the modification in the second area includes:

identifying a key for the modification;

transforming the key using the second randomizer function to determine a location in the second area; and

writing a database record from the modification at the location in the second area.

15. The computer system of claim 8 , wherein the computer system includes an IMSPlex, where the DBMS is associated with a first computing device of the computer system and the computer system further includes a second DBMS communicatively coupled to the active DEDB and associated with a second computing device and the second DBMS sends the notification of the modification to the active DEDB.

16. A method comprising:

registering, using at least one processor, a first area of an active DEDB with a change module, the first area of the active DEDB defined as comprised of a first quantity of units of work (UOWs);

allocating, using the at least one processor, a shadow DEDB having a second area, the second area defined as comprised of a second quantity of UOWs, the second quantity differing from the first quantity;

populating the second area with data from the first area and, during the populating:

identifying a modification to the active DEDB, and

in response to determining that the modification is directed to the first area, reflecting the modification in the second area;

replacing the first area with the second area; and

making the second area of the shadow DEDB active.

17. The method of claim 16 , wherein the registered area represents less than the entire active DEDB.

18. The method of claim 16 , wherein reflecting the modification in the second area includes:

identifying a key for the modification;

transforming the key using a randomizer function to determine a location in the second area; and

writing a database record from the modification at the location in the second area.

19. The method of claim 18 , wherein writing the database record occurs while the second area is offline.

20. The method of claim 18 , wherein reflecting the modification in the second area further includes:

determining whether the location is in a unit of work already populated in the second area;

ignoring the modification when it is determined that the modification does not occur in a unit of work already populated in the second area; and

applying the modification at the second location in the second area when the update does occur in a unit of work already populated in the second area.

Assignments (14)
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 →
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 →
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 Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0231 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0189 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2014
From: MANSUR, BRUCE H.; BRISTOL, LARRY J.; KIMBALL, WILLIAM P.; SIMMS, THOMAS E.
To: BMC SOFTWARE, INC.
Reel/Frame 032283/0096 →