← Back to Patent Explorer
US6606631B1 Expired / Lapsed US ⏱️ 0.0 years remaining

IMS on-line reorganization utility

Assignee: BMC Software Inc
•
Filing: 2000-07-13
•
Granted: 2003-08-12
•
Expires: 2020-07-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An improved method and system for on-line reorganization of an IMS database while allowing concurrent updates. In one embodiment, the method involves building and dynamically maintaining a map of free blocks in the IMS database. The user then provides a list of candidate database records to be analyzed. The physical characteristics of each database record on the list are then analyzed. Calculations are made to identify fragmented database records and the segments which contain fragmented boundary twin chains. A reorganization recommendation list is created for each database record on the list, including fragmented boundary twin chains. Each fragmented database record on the reorganization recommendation list is then reorganized. This reorganization process includes the following steps: a) determine the number of blocks needed; b) assign and protect the number of blocks needed; c) identify the assigned blocks; d) retrieve the database record, delete the database record, and insert the database record into the identified blocks; e) commit the changes to the database. This process of analyzing the physical characteristics of each database record on the list and reorganizing the database records is continued until each database record on the list is no longer fragmented. User access to the database is maintained (i.e., the database is on-line) during the analyzing and reorganizing processes.

Inventors

  • 👤 James L. Martin, Jr.
  • 👤 George Norman Crown, Jr.

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 23:23
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/28; G06F16/282; Y; Y10; Y10S; Y10S707/00; Y10S707/953; Y10S707/956; Y10S707/959; Y10S707/99931; Y10S707/99938; Y10S707/99941; Y10S707/99942

Claims Analysis

Total Claims: 43
Claim 1
Independent Claim 78 words
A method for reorganizing an IMS database, the method comprising: allowing concurrent updates and access to the IMS database; building a map of free blocks in the IMS database; receiving a list of database records to be analyzed; analyzing physical characteristics of each database record on the list wherein said analyzing uses the map of free blocks in the IMS database; and reorganizing each database record on the list based on the physical characteristics of each database record.
Claim 2
Independent Claim 78 words
A method for reorganizing an IMS database, the method comprising: allowing concurrent updates and access to the IMS database; building a map of free blocks in the IMS database; receiving a list of database records to be analyzed; analyzing physical characteristics of each database record on the list wherein said analyzing uses the map of free blocks in the IMS database; and reorganizing each database record on the list based on the physical characteristics of each database record.
Claim 3
Dependent Claim 99 words
The method of claim 1 wherein building a map of free blocks in the IMS database further comprises: reading each block in the IMS database; analyzing each block in response to said reading to determine the amount of free space in each block in the IMS database; designating as “free” in the map of free blocks those blocks for which the amount of free space for the block exceeds a pre-determined threshold; and designating as “used” in the map of free blocks those blocks for which the amount of free space for the block falls below a pre-determined threshold.
Claim 4
Dependent Claim 125 words
The method of claim 1 further comprising dynamically maintaining the map of free blocks in the IMS database after building the map of free blocks in the IMS database wherein the dynamic maintenance further comprises: monitoring the amount of free space for each block in the IMS database; controlling the status of a “free space bit” in the map of free blocks for each block in the IMS database based on the monitoring; designating as “free” in the map of free blocks those blocks for which the amount of bee space for the block exceeds a pre-determined threshold; and designating as “used” in the map of free blocks those blocks for which the amount of free space for the block falls below a pre-determined threshold.
Claim 5
Dependent Claim 170 words
The method of claim 1 wherein analyzing physical characteristics of each database record on the list further comprises: tracing database retrieval to collect physical location information for each segment of the database record; identifying one or more segments which represent a fragmented boundary twin chain using the collected physical location information for each segment of the database record; creating a list of fragmented boundary twin chains in response to identifying one or more segments which represent a fragmented boundary twin chain; determining a total number of physical blocks currently used to hold the database record, wherein said determining uses the physical location information of the segments of the database record; calculating a minimum number of physical blocks needed to hold the database record, wherein said calculating uses the physical location information of the segments of the database record; and determining if the database record is fragmented in response to the total number of physical blocks currently used and the minimum number of physical blocks needed to hold the database record.
Claim 6
Dependent Claim 51 words
The method of claim 1 , further comprising: analyzing the IMS database subsequent to the reorganization of each fragmented database record on the list wherein said analyzing determines if the IMS database is disorganized from a database record to database record standpoint; and reorganizing the disorganized IMS database record by record.
Claim 7
Dependent Claim 79 words
The method of claim 5 , wherein reorganizing the disorganized IMS database record by record further comprises: inspecting a database record of the disorganized IMS database; determining if the database record is disorganized in response to said inspecting the database record; moving the disorganized database records into free space within the disorganized IMS database; and creating an entry in a block key directory comprising the identity of each block used by each database record in the disorganized IMS database.
Claim 8
Dependent Claim 231 words
The method of claim 6 , further comprising: setting a beginning target range value to the beginning of the disorganized IMS database; retrieving a database record of the disorganized IMS database in hierarchical order; determining a number of blocks needed to hold the retrieved database record; setting the ending target range value to the beginning target range value plus the number of blocks needed to hold the retrieved database record; using information from the block key directory to create a list of database records to be relocated from the target range in order to free the necessary amount of space needed to hold the retrieved database record; using information from a working block directory to correct as needed the list of database records that must be moved from the target range; moving the database records included on the list of database records to be relocated to an area of free space outside of the target range within the disorganized IMS database; updating the working block directory to reflect the change to block content in response to the database record being moved; in moving the database record into the target range; updating the working block directory to reflect the change to block content in response to the moving of the database record into the target range; and setting the beginning target range value to the last block used in the target range.
Claim 9
Independent Claim 117 words
A method for reorganizing an IMS database, the method comprising: allowing concurrent updates and access to the IMS database; building a map of free blocks in the IMS database; receiving a list of database records to be analyzed; analyzing physical characteristics of each database record on the list wherein said analyzing uses the map of free blocks in the IMS database; retrieving a database record on the list; determining a minimum number of physical blocks needed to hold the database record; assigning space for at least the minimum number of physical blocks needed to hold the database record; deleting the database record; inserting the database record into the assigned blocks; and committing the changes to the database.
Claim 10
Independent Claim 117 words
A method for reorganizing an IMS database, the method comprising: allowing concurrent updates and access to the IMS database; building a map of free blocks in the IMS database; receiving a list of database records to be analyzed; analyzing physical characteristics of each database record on the list wherein said analyzing uses the map of free blocks in the IMS database; retrieving a database record on the list; determining a minimum number of physical blocks needed to hold the database record; assigning space for at least the minimum number of physical blocks needed to hold the database record; deleting the database record; inserting the database record into the assigned blocks; and committing the changes to the database.
Claim 11
Dependent Claim 59 words
The method of claim 8 wherein assigning space for at least the minimum number of physical blocks needed to hold the database record further comprises: determining a list of free blocks available; using the blocks from the list of free blocks in first-in-first-out order; and using a standard IMS block assignment if the list of free blocks is exhausted.
Claim 12
Independent Claim 125 words
A system for reorganizing an IMS database, the system comprising: a network; a CPU coupled to the network; a memory coupled to the CPU which stores an IMS database; a system memory coupled to me CPU, wherein the system memory stores one or more computer programs executable by the CPU; wherein the computer programs are executable to: allowing concurrent updates and access to the IMS database; building a map of free blocks in the IMS database; receiving a list of database records to be analyzed; analyzing physical characteristics of each database record on the list wherein said analyzing uses the map of free blocks in the IMS database; and reorganizing each database record on the list based on the physical characteristics of each database record.
Claim 13
Independent Claim 125 words
A system for reorganizing an IMS database, the system comprising: a network; a CPU coupled to the network; a memory coupled to the CPU which stores an IMS database; a system memory coupled to me CPU, wherein the system memory stores one or more computer programs executable by the CPU; wherein the computer programs are executable to: allowing concurrent updates and access to the IMS database; building a map of free blocks in the IMS database; receiving a list of database records to be analyzed; analyzing physical characteristics of each database record on the list wherein said analyzing uses the map of free blocks in the IMS database; and reorganizing each database record on the list based on the physical characteristics of each database record.
Claim 14
Dependent Claim 105 words
The system of claim 10 wherein in building a map of free blocks in the IMS database the computer programs are further executable to: read each block in the IMS database; analyze each block in response to said reading to determine the amount of free space in each block in the IMS database; designate as “free” in the map of free blocks those blocks for which the amount of free space for the block exceeds a pre-determined threshold; and designate as “used” in the map of free blocks those blocks for which the amount of free space for the block falls below a pre-determined threshold.
Claim 15
Dependent Claim 147 words
The system of claim 10 , wherein the computer programs are further executable to dynamically maintain the map of free blocks in the IMS database after building the map of free blocks in the IMS database and wherein in dynamically maintaining the map of free blocks in the IMS database the computer programs are further executable to: monitor the amount of free space for each block in the IMS database; control the status of a “free space bit” in the map of free blocks for each block in the IMS database based on the monitoring; designate as “free” in the map of free blocks those blocks for which the amount of free space for the block exceeds a pre-determined threshold; and designate as “used” in the map of free blocks those blocks for which the amount of free space for the block falls below a pre-determined threshold.
Claim 16
Dependent Claim 176 words
The system of claim 10 wherein in analyzing physical characteristics of each database record on the list the computer programs are further executable to: trace database retrieval to collect physical location information for each segment of the database record; identify one or more segments which represent a fragmented boundary twin chain using the collected physical location information for each segment of the database record; create a list of fragmented boundary twin chains in response to identifying one or more segments which represent a fragmented boundary twin chain; determine a total number of physical blocks currently used to hold the database record, wherein said determining uses the physical location information of the segments of the database record; calculate a minimum number of physical blocks needed to hold the database record, wherein said calculating uses the physical location information of the segments of the database record; and determine if the database record is fragmented in response to the total number of physical blocks currently used and the minimum number of physical blocks needed to hold the database record.
Claim 17
Dependent Claim 75 words
The system of claim 10 wherein in reorganizing each fragmented database record on the list the computer programs are further executable to: retrieve the database record; determine a minimum number of physical blocks needed to hold the database record; assign space for at least the minimum number of physical blocks needed to hold the database record; delete the database record; insert the database record into the assigned blocks; and commit the changes to the database.
Claim 18
Dependent Claim 65 words
The system of claim 14 wherein in assigning space for at least the minimum number of physical blocks needed to hold the database record the computer programs are further executable to: determine a list of free blocks available; use the blocks from the list of free blocks in first-in-first-out order; and use a standard IMS block assignment if the list of free blocks is exhausted.
Claim 19
Dependent Claim 57 words
The system of claim 10 , wherein the computer programs are further executable to: analyze the IMS database subsequent to the reorganization of each fragmented database record on the list wherein said analyzing determines if the IMS database is disorganized from a database record to database record standpoint; and reorganize the disorganized IMS database record by record.
Claim 20
Dependent Claim 85 words
The system of claim 16 , wherein in reorganizing the disorganized IMS database record by record the computer programs are further executable to: inspect a database record of the disorganized IMS database; determine if the database record is disorganized in response to said inspecting the database record; move the disorganized database records into free space within the disorganized IMS database; and create an entry in a block key directory comprising the identity of each block used by each database record in the disorganized IMS database.
Claim 21
Dependent Claim 236 words
The system of claim 17 , wherein the computer programs are further executable to: set a beginning target range value to the beginning of the disorganized IMS database; retrieve a database record of the disorganized IMS database in hierarchical order; determine a number of blocks needed to hold the retrieved database record; set the ending target range value to the beginning target range value plus the number of blocks needed to hold the retrieved database record; use information from the block key directory to create a list of database records to be relocated from the target range in order to free the necessary amount of space needed to hold the retrieved database record; use information from a working block directory to correct as needed the list of database records that must be moved from the target range; move the database records included on the list of database records to be relocated to an area of free space outside of the target range within the disorganized IMS database; update the working block directory to reflect the change to block content in response to the database record being moved; move the database record into the target range; update the working block directory to reflect the change to block content in response to the moving of the database record into the target range; and set the beginning target range value to the last block used in the target range.
Claim 22
Dependent Claim 88 words
A carrier medium which stores program instructions for reorganizing an IMS database, wherein the program instructions are executable to implement: allowing concurrent updates and access to the IMS database; building a map of free blocks in the IMS database; receiving a list of database records to be analyzed; analyzing physical characteristics of each database record on the list wherein said analyzing uses the map of free blocks in the IMS database; and reorganizing each database record on the list based on the physical characteristics of each database record.
Claim 23
Dependent Claim 88 words
A carrier medium which stores program instructions for reorganizing an IMS database, wherein the program instructions are executable to implement: allowing concurrent updates and access to the IMS database; building a map of free blocks in the IMS database; receiving a list of database records to be analyzed; analyzing physical characteristics of each database record on the list wherein said analyzing uses the map of free blocks in the IMS database; and reorganizing each database record on the list based on the physical characteristics of each database record.
Claim 24
Dependent Claim 107 words
The carrier medium of claim 19 wherein in building a map of free blocks in the IMS database the program instructions are further executable to implement: reading each block in the IMS database; analyzing each block in response to said reading to determine the amount of free space in each block in the IMS database; designating as “free” in the map of free blocks those blocks for which the amount of free space for the block exceeds a pre-determined threshold; and designating as “used” in the map of free blocks those blocks for which the amount of free space for the block falls below a pre-determined threshold.
Claim 25
Dependent Claim 150 words
The carrier medium of claim 19 , wherein the program instructions are further executable to implement dynamically maintaining the map of free blocks in the IMS database after building the map of free blocks in the IMS database and wherein in dynamically maintaining the map of free blocks in the IMS database the program instructions are further executable to implement: monitoring the amount of free space for each block in the IMS database; controlling the status of a “free space bit” in the map of free blocks for each block in the IMS database based on the monitoring; designating as “free” in the map of free blocks those blocks for which the amount of free space for the block exceeds a pre-determined threshold; and designating as “used” in the map of free blocks those blocks for which the amount of free space for the block falls below a pre-determined threshold.
Claim 26
Dependent Claim 178 words
The carrier medium of claim 19 wherein in analyzing physical characteristics of each database record on the list the program instructions are further executable to implement: tracing database retrieval to collect physical location information for each segment of the database record; identifying one or more segments which represent a fragmented boundary twin chain using the collected physical location information for each segment of the database record; creating a list of fragmented boundary twin chains in response to identifying one or more segments which represent a fragmented boundary twin chain; determining a total number of physical blocks currently used to hold the database record, wherein said determining uses the physical location information of the segments of the database record; calculating a minimum number of physical blocks needed to hold the database record, wherein said calculating uses the physical location information of the segments of the database record; and determining if the database record is fragmented in response to the total number of physical blocks currently used and the minimum number of physical blocks needed to hold the database record.
Claim 27
Dependent Claim 77 words
The carrier medium of claim 19 wherein in reorganizing each fragmented database record on the list the program instructions are further executable to implement: retrieving the database record; determining a minimum number of physical blocks needed to hold the database record; assigning space for at least the minimum number of physical blocks needed to hold the database record; deleting the database record; inserting the database record into the assigned blocks; and committing the changes to the database.
Claim 28
Dependent Claim 67 words
The carrier medium of claim 23 wherein in assigning space for at least the minimum number of physical blocks needed to hold the database record the program instructions are further executable to implement: determining a list of free blocks available; using the blocks from the list of free blocks in first-in-first-out order; and using a standard IMS block assignment if the list of free blocks is exhausted.
Claim 29
Dependent Claim 59 words
The carrier medium of claim 19 , wherein the program instructions are further executable to implement: analyzing the IMS database subsequent to the reorganization of each fragmented database record on the list wherein said analyzing determines if the IMS database is disorganized from a database record to database record standpoint; and reorganizing the disorganized IMS database record by record.
Claim 30
Dependent Claim 87 words
The carrier medium of claim 25 , wherein in reorganizing the disorganized IMS database record by record the program instructions are further executable to implement: inspecting a database record of the disorganized IMS database; determining if the database record is disorganized in response to said inspecting the database record; moving the disorganized database records into free space within the disorganized IMS database; and creating an entry in a block key directory comprising the identity of each block used by each database record in the disorganized IMS database.
Claim 31
Dependent Claim 238 words
The carrier medium of claim 26 , wherein the program instructions are further executable to implement: setting a beginning target range value to the beginning of the disorganized IMS database; retrieving a database record of the disorganized IMS database in hierarchical order; determining a number of blocks needed to hold the retrieved database record; setting the ending target range value to the beginning target range value plus the number of blocks needed to hold the retrieved database record; using information from the block key directory to create a list of database records to be relocated from the target range in order to free the necessary amount of space needed to hold the retrieved database record; using information from a working block directory to correct as needed the list of database records that must be moved from the target range; moving the database records included on the list of database records to be relocated to an area of free space outside of the target range within the disorganized IMS database; updating the working block directory to reflect the change to block content in response to the database record being moved; moving the database record into the target range; updating the working block directory to reflect the change to block content in response to the moving of the database record into the target range; and setting the beginning target range value to the last block used in the target range.
Claim 32
Dependent Claim 15 words
The carrier medium of claim 19 , wherein the carrier medium is a memory medium.
Claim 33
Independent Claim 64 words
A method for reorganizing an IMS database, the method comprising: building a map of free blocks in the IMS database; analyzing physical characteristics of a database record wherein said analyzing uses the map of free blocks; reorganizing the database record based on the physical characteristics of the database record; and allowing access to another database record during the step of reorganizing the database record.
Claim 34
Independent Claim 64 words
A method for reorganizing an IMS database, the method comprising: building a map of free blocks in the IMS database; analyzing physical characteristics of a database record wherein said analyzing uses the map of free blocks; reorganizing the database record based on the physical characteristics of the database record; and allowing access to another database record during the step of reorganizing the database record.
Claim 35
Dependent Claim 100 words
The method in claim 29 , wherein building a map of free blocks in the IMS database further comprises: reading each block in the IMS database; analyzing each block in response to said reading to determine the amount of free space in each block in the IMS database; designating as “free” in the map of free blocks those blocks for which the amount of free space for the block exceeds a pre-determined threshold; and designating as “used” in the map of free blocks those blocks for which the amount of free space for the block falls below a pre-determined threshold.
Claim 36
Dependent Claim 65 words
The method of claim 29 wherein reorganizing the database record further comprises: retrieving the database record; determining a minimum number of physical blocks needed to hold the database record; assigning space for at least the minimum number of physical blocks needed to hold the database record; deleting the database record; inserting the database record into the assigned blocks; and committing the changes to the database.
Claim 37
Dependent Claim 74 words
A computer-readable medium having a computer-executable program therein for performing a method, wherein the method comprising: building a map of free blocks in the IMS database; analyzing physical characteristics of a database record wherein said analyzing uses the map of free blocks in the IMS database; reorganizing the database record based on the physical characteristics of the database record; and allowing access to another database record during the step of reorganizing the database record.
Claim 38
Dependent Claim 74 words
A computer-readable medium having a computer-executable program therein for performing a method, wherein the method comprising: building a map of free blocks in the IMS database; analyzing physical characteristics of a database record wherein said analyzing uses the map of free blocks in the IMS database; reorganizing the database record based on the physical characteristics of the database record; and allowing access to another database record during the step of reorganizing the database record.
Claim 39
Dependent Claim 111 words
The computer-readable medium having a computer-executable program therein for performing a method, as in claim 32 , wherein building a map of free blocks in the IMS database further comprises: reading each block in the IMS database; analyzing each block in response to said reading to determine the amount of free space in each block in the IMS database; designating as “free” in the map of free blocks those blocks for which the amount of free space for the block exceeds a pre-determined threshold; and designating as “used” in the map of free blocks those blocks for which the amount of free space for the block falls below a pre-determined threshold.
Claim 40
Dependent Claim 77 words
The computer-readable medium having a computer-executable program therein for performing a method, as in claim 33 , wherein reorganizing the database record further comprises: retrieving the database record; determining a minimum number of physical blocks needed to hold the database record; assigning space for at least the minimum number of physical blocks needed to hold the database record; deleting the database record; inserting the database record into the assigned blocks; and committing the changes to the database.
Claim 41
Independent Claim 50 words
A method for reorganizing an IMS database, the method comprising: building a map of free blocks in the IMS database; analyzing physical characteristics of a database record wherein said analyzing uses the map of free blocks; and reorganizing the database record based on the physical characteristics of the database record.
Claim 42
Independent Claim 50 words
A method for reorganizing an IMS database, the method comprising: building a map of free blocks in the IMS database; analyzing physical characteristics of a database record wherein said analyzing uses the map of free blocks; and reorganizing the database record based on the physical characteristics of the database record.
Claim 43
Dependent Claim 17 words
A computer-readable medium having a computer-executable program therein for performing the method as in claim 35 .

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2006-08-11 2007-02-10 2007-08-12 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2010-08-11 2011-02-10 2011-08-12 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2014-08-11 2015-02-10 2015-08-12 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag