IP Library Granted Patent US 8,161,001
Granted Patent B2
US 8,161,001 · App. 12/437,471 · Granted Apr 17, 2012

Relational database page-level schema transformations

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,161,001
App. No.
12/437,471
Granted
Apr 17, 2012
Kind
B2
Abstract

Methods, devices and systems which facilitate the conversion of database objects from one schema version (e.g., an earlier version) to another schema version (e.g., a newer version) without requiring the objects be unloaded and reloaded are described. In general, data object conversion applies to both table space objects and index space objects. The described transformation techniques may be used to convert any object whose schema changes occur at the page-level.

Claims (31)

1. A general purpose computer programmed to perform a database schema transformation method, the method comprising:

identifying a first database object, the first database object having a plurality of pages and a first schema;

specifying a second version of the first database object and referred to as a second database object, the second database object having a schema with at least one page-level attribute that is different from the first schema and referred to as a second schema;

determining, for each page in the first database object, how each page-level attribute that is different between the first schema and the second schema will cause said page to change page-position when transformed from the first database object to the second database object;

generating an entry in a transformation table for every one or more contiguous first database object pages determined to have a common page-position offset, wherein every page in the first database object is associated with a single entry in the transformation table; and

transforming each page in the first database object into the second database.

2. The method of claim 1 wherein the act of identifying a first database object comprises:

identifying a source database object; and

copying the source database object to make the first database object.

3. The method of claim 2 , wherein the act of copying comprises making a consistent copy of the source database object to make the first database object.

4. The method of claim 1 , wherein the act of specifying a second version of the first database object having a schema with at least one page-level attribute that is different from the first schema comprises specifying one or more of the following page-level attributes: page size and row identifier size.

5. The method of claim 4 , wherein the act of identifying a first database object comprises identifying a table space database object and the act of specifying a second version of the first database object having a schema with at least one page-level attribute that is different from the first schema comprises specifying one or more of the following page-level attributes: data set size and segment size.

6. The method of claim 4 , wherein the act of identifying a first database object comprises identifying an index space database object and the act of specifying a second version of the first database object having a schema with at least one page-level attribute that is different from the first schema comprises specifying one or more of the following page-level attributes: piece size and compression attribute.

7. The method of claim 1 , wherein the first database object comprises a nonpartitioned database object and the second database object comprises a partitioned database object.

8. The method of claim 1 wherein the act of generating an entry in a transformation table comprises:

generating a low-page-number portion for each transformation table entry, the low-page-number portion being a value representing a first page number in the first database object;

generating a high-page-number portion for each transformation table entry, the high-page-number portion being a value representing a second page number in the first database object; and

generating an offset portion for each transformation table entry, the offset portion being a value.

9. The method of claim 8 , further comprising storing the transformation, table entry in a memory.

10. The method of claim 9 , wherein the act of storing the transformation table entry in a memory comprises storing the transformation table entry in a volatile memory.

11. The method of claim 8 wherein the act of transforming each page in the first database object into the second database object comprises:

obtaining a page from the first database object, the page having a page number;

selecting that transformation table entry whose low-page-number portion and high-page-number portion bounds the page number;

updating the page number by adding the offset portion value to the page number; and

inserting the page into the second database object at a location indicated by the updated page number.

12. The method of claim 11 wherein the act of transforming each page in the first database object into the second database object further comprises updating one or more of the following aspects of the page: row identifier and partition identifier.

13. The method of claim 11 wherein the act of transforming each page in the first database object into the second database object further comprises inserting one or more of the following into the second database object: a spacemap, a compression dictionary and a system page.

14. An article of manufacture comprising a program storage medium readable by a computer processor and embodying one or more instructions executable by the computer processor to perform a method in accordance with claim 1 .

15. A computer network executing a method to transform a relational database object, the computer network comprising:

a storage device for the non-volatile storage of a relational database object;

a computer system communicatively coupled to the network and the storage device, the computer system having memory, the memory having stored therein program instructions for causing the computer system to perform the method of claim 1 .

Assignments (12)
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 052854/0139 →
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 →
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 →