US20070088769A1 - Reorganization and repair of an icf catalog while open and in-use in a digital data storage system - Google Patents
Reorganization and repair of an icf catalog while open and in-use in a digital data storage system Download PDFInfo
- Publication number
- US20070088769A1 US20070088769A1 US11/537,971 US53797106A US2007088769A1 US 20070088769 A1 US20070088769 A1 US 20070088769A1 US 53797106 A US53797106 A US 53797106A US 2007088769 A1 US2007088769 A1 US 2007088769A1
- Authority
- US
- United States
- Prior art keywords
- data
- catalog
- bcs
- pointer
- records
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99955—Archiving or backup
Definitions
- This invention is in the field of digital data storage systems and, more specifically, pertains to storage systems that employ ICF catalogs for managing and using data sets.
- the IBM MVS® mainframe operating system has evolved into the primary data server for very large enterprise computer system environments. This new and critical function has increased the availability of the MVS mainframe system, and all data stored within it, to essentially a 24 ⁇ 7 or “always available” level.
- the ICF (Integrated Catalog Facility) catalog environment is a critical component of MVS, as virtually all data or “data sets” within the system must be cataloged within an ICF catalog; they cannot be located for access unless there is a successful search for the data set through the catalog. If the data is not cataloged, or if the necessary catalog is not available, the application attempting to locate it cannot gain access. In even the smallest MVS systems, there are often hundreds of thousands of data sets, and in a large MVS system, the number of data sets is in the tens of millions. All of these data sets are catalogued, except for a very few special cases not important here.
- An ICF catalog consists of two components, the Basic Catalog Structure (BCS) catalog, where the data set's name and disk storage volume location is stored, and the VSAM Volume Data Set (VVDS), where the physical and logical attributes of the data set are stored.
- BCS Basic Catalog Structure
- VVDS VSAM Volume Data Set
- BCS Basic Catalog Structure
- a BCS catalog can be physically stored on any disk volume, regardless of the location of the data that it catalogs.
- Each VVDS is physically stored on the volume on which the data resides that it defines, and therefore, the number of VVDSs is typically equal to the number of volumes that an MVS system has assigned to it.
- Each VVDS comprises a series of VVRs (VSAM Volume Records).
- FIG. 1 shows three data storage volumes 110 , 112 , and 114 .
- a BCS catalog 120 resides on volume Vol.001 ( 110 ), along with a VVDS 124 which, in turn, defines one or more data sets stored on that volume.
- one record in the BCS 120 points to a corresponding record in VVDS 124 , as indicated by the dashed line, and a record in the VVDS in turn points to a corresponding VSAM data set 126 (“VSAM”) also on volume 110 , as indicated by a dashed line as well.
- VSAM VSAM data set 126
- the BCS catalog 120 also includes a second record that points to a second VVDS 132 on Vol.002 ( 112 ), which in turn defines a data set 134 on volume 112 .
- an MVS system has two types of BCS catalogs—one master catalog that identifies and locates the operating system data sets used by the MVS system, and one or more user catalogs that identify and locate all other data sets that are to be accessible to the system.
- BCS 120 is a user catalog.
- a user catalog In order to be usable and accessible on a system, a user catalog must be “connected” to the system via a special record in the master catalog, called a UCAT Connector Record (not shown).
- UCAT Connector Record not shown.
- one important aspect of the present invention is a method of reorganizing the BCS catalog while it remains open.
- data storage devices are shared, that is, concurrently accessible and updateable by multiple operating systems, mechanisms exist to prevent unsynchronized sequences of events from occurring.
- serialization protocols are not adhered to, then the integrity of the physical data can be compromised.
- the BCS is considered “in use” as soon as it is opened by CAS, regardless of any open data sets cataloged in the BCS. As mentioned, the BCS remains open for the life of the IPL, unless explicitly closed. As long as it is in use, repair or cleanup catalog management functions cannot be performed.
- MVS data set names are comprised of 1 to 44 characters. A period in a name, counted as a character, has special meaning. Periods are used to separate a name into nodes, called qualifiers. Qualifiers serve the purpose of grouping names for visual identification and masking capabilities. Also, the left most (high level) 1 to 4 qualifiers may be used to identify which catalog the “locate” pointers to a data set are to be recorded in.
- alias a special entry called an “alias” is created in the “master catalog,” causing all data sets whose high level qualifier(s) match the defined alias to be cataloged in the corresponding “user catalog.” Subsequent locates for an existing data set will begin by searching the master catalog for an alias match, which in turn directs the locate to the associated user catalog.
- the data set name high-level qualifier derives from a short-form name of an application, such as PARTS for a manufacturing organization, and therefore, every data set in the PARTS application will have a name that begins with PARTS.
- the number of data sets in this application could number in the thousands, or tens of thousands.
- the data set name is used as a keyed search argument.
- the BCS catalog 120 is physically a VSAM Key Sequenced Data Set (KSDS), and the key of its records is the data set name.
- KSDS VSAM Key Sequenced Data Set
- the volume cell(s) inside the record identifies the disk storage (DASD) volume(s) on which the data set resides, for example 110 or 112 , and points by relative address to the data set's descriptive record within the WDS 124 , 132 (if the data set is VSAM or nonVSAM SMS managed) or the VTOC 128 , 130 (if the data set is nonVSAM nonSMS managed).
- DASD disk storage
- catalog record 202 in BCS 120 points to volume 001 , and specifically to record 208 in the VVDS 124 .
- Another data set record 204 points to volume 002 and specifically to record 216 in the VVDS 216 , which in turn defines the data set 134 .
- Volume 114 has associated VTOC 140 , WDS 142 and a representative KSDS 144 .
- FIG. 2 illustrates a BCS catalog in greater detail.
- the catalog generally comprises a data component 250 and an index component 270 .
- the data component 250 conceptually comprises a series of columns 252 , each column representing one Control Area or CA.
- the CAs are numbered from left to right beginning with CA.01.
- Each CA corresponds to a cylinder in DASD storage, and contains at least one Control Interval or CI, for example 254 , 256 which can be thought of as a block of data storage records (the minimum I/O block size).
- CI Control Interval
- VSAM By standard VSAM design, all records within a KSDS are maintained in logical ascending key sequence—and the BCS catalog is a standard VSAM KSDS. Accordingly, when new cataloged data sets are added, the value of the data set name key determines the location within the BCS data component where the records will be inserted. Pre-allocated “free space” can be reserved in a BCS with the FREESPACE keyword on the IDCAMS DEFINE USERCATALOG command, and this space can be utilized when a new data set is cataloged.
- This pre-allocated free space can be reserved at either (or both) the CI (Control Interval) or CA (Control Area) level, specified as a percentage, and by standard VSAM design will be evenly distributed across the entire file when it is initially loaded (and therefore, is beneficial when record insertions are in the same distribution across the file).
- CI level free space 257 in CA.00 and CA level free space 258 are illustrated.
- VSAM When a record insertion is necessary, and sufficient free space at the appropriate location is not available, VSAM automatically performs a “CI split,” moving half of the records in the affected CI to a free CI within the same CA. If a free CI within that CA is not found, VSAM performs a CA split, moving half of the CIs from the affected CA to an entirely new CA at the end of file (EOF) location. If a new CA cannot be found, VSAM allocates a new physical secondary extent of the BCS.
- the extent limit count for a BCS is 123, and unlike other VSAM data sets, the BCS catalog is restricted to a single volume allocation. If the 123 maximum extent limit is reached, Catalog Management fails the new data set allocation. Subsequent to this, other data sets might still be able to allocate, if the value of their data set name “points” to a location within the BCS catalog where there is sufficient free space.
- the index component 270 of the BCS is illustrated in simplified conceptual form in FIG. 2 .
- the first level index or “sequence set” 272 comprises a series of records, e.g. 274 , 276 etc., each of which corresponds to a respective CA in the data component.
- Index record 274 corresponds to CA.00
- index record 276 corresponds to CA.01 and so on.
- Each index record has an entry for each data CI in the corresponding CA, including an indication of the highest key value in that CI.
- a second level index (if needed) comprises another series of records, e.g. 282 , 288 each of which corresponds to a plurality of first level index records.
- a second level index record there is an entry for each first level index record associated with that record, including an indication of the highest key value in the corresponding first level index record.
- a third level index record 290 is shown, and there may be more, as needed, associated in this hierarchical fashion, sometimes called a B-tree.
- horizontal pointers such as 292 form a linked list or chain in key sequential order.
- the BCS catalog is a relatively stable structure, in that the process of cataloging new data sets and deleting existing data sets balances out. After a few CI and CA splits to open up free space in the volatile areas of the catalog are completed, it generally settles down and doesn't grow very much. In situations such as that, a BCS catalog can survive months or years without attention.
- a file reorganization generally begins with executing a utility program to unload all records in the file to a backup copy; the data set is then physically deleted and redefined (thereby making it empty), and the backed up records are then reloaded.
- the result is a “reorganization” of the data blocks (CIs and CAs) within the data set, and its physical size is now in proper proportion to the records contained within it.
- a re-org for either an application data set or BCS catalog, can be accomplished by IBM or other vendor utility programs.
- the re-org process requires that all external points of access to the object dataset or BCS catalog be “quiesced”.
- the term “quiesced” means that all other software functions that can physically access the object dataset must be temporarily inhibited from doing so.
- the accessing programs include the MVS Catalog Management functions available from any active system that has physical access to it.
- the BCS catalog resides on a shared DASD volume, allowing Catalog Management on any number of MVS systems to be open to the BCS, updating it with new and deleted data sets, and with applications also open and accessing data sets that are cataloged within the BCS.
- This sharing across systems complicates the coordination and scheduling necessary to quiescing the BCS as further explained below.
- various levels of catalog sharing are known in the art, including: (1) Not Shared; (2) Shared only within a single Sysplex; (3) Shared across multiple Sysplexes; and (4) ECS—Enhanced Catalog Sharing.
- the present invention provides catalog integrity across these various levels of catalog sharing.
- Re-org methodologies for performing a BCS catalog re-org exist.
- Prior art includes IBM IDCAMS EXPORT/IMPORT, EMC Catalog Solution DUMP/REBUILD, and BACKUP/RESTORE, implemented in software products commercially available from Mainstar Software Corporation, Bellevue, Wash. (assignee of the present invention).
- These known methodologies do not satisfy the requirements for a re-org while open, as they inherently require the BCS to be quiesced and closed throughout the re-org process. They also require the BCS to be physically deleted and re-defined between the backup and restore processes.
- the user schedules a quiesce period during which time the BCS catalog will be inaccessible.
- the MVS operator MODIFY command is issued on all systems sharing access to the catalog, forcing it to close and un-allocate to CAS.
- user knowledge of, and strict adherence to procedures, across all systems, must be maintained, as the BCS catalog can automatically re-open if any job is executed that requests access to it.
- the existing BCS catalog is deleted, re-defined as a new, empty BCS catalog, and the records from the backup file are then restored with the appropriate utility function with regard to the backup.
- the delete/define function is automatically performed for the user, while in others the user must do it manually.
- some prior art methodologies allow certain physical attributes of the BCS catalog to be changed on the new allocation from the existing BCS catalog's attributes. Regardless of the methodology, when the restore operation is complete, system and application processing that might use the catalog can be restarted, and the catalog will re-open as necessary.
- Down-time is defined as the time between closing and re-opening of the catalog, enabling application jobs and online systems to once again resume access to the data sets cataloged within the BCS catalog.
- access to the BCS catalog must be stopped, including allocation of new data sets, deletion of existing data sets, and application access to data within existing data sets is denied. Even if the downtime is planned and scheduled, it represents an outage that might not be acceptable for 24 ⁇ 7 environments.
- One important aspect of the invention is the ability to re-org a BCS catalog while it is open and accessible to Catalog Management on any number of MVS operating systems that are sharing access to it. In doing so, the invention ensures that any Catalog Management control block information that might require alteration is properly updated as a result of the BCS catalog structural changes that take place during the re-org.
- a primary objective of a BCS catalog re-org process is minimizing Catalog Management down-time (i.e., the necessary window of its unavailability) which in turn results in minimum impact on application jobs that require use of the catalog, while still complying with the various constraints and requirements mentioned above.
- Another objective is to properly re-organize a BCS catalog while open, allowing continued access to data sets listed in the catalog during the re-org process.
- a further object is to ensure that the re-org results in a valid, usable BCS.
- One especially important objective of the invention is to enable recovering from a failed re-org attempt without catalog data loss or corruption.
- an optional mirror-image backup of the catalog can be taken at the same time as the re-org backup. This backup can subsequently be restored if the re-org process signals an error from which it cannot recover.
- FIG. 1 is a conceptual diagram illustrating MVS data storage volumes, including a BCS catalog and associated WDS, VTOC and VSAM structures.
- FIG. 2 is a simplified, conceptual diagram of the internal structure of a BCS catalog, depicting the data and index components.
- FIG. 3 is a process flow diagram depicting a method of BCS catalog re-org while open in accordance with the present invention.
- FIG. 5A is a conceptual illustration of a series of data Control Intervals.
- FIG. 5B is a conceptual illustration of a Data CI Table in accordance with the present invention.
- Step 302 of a presently preferred embodiment establishes the ESTAE environment, so that any ABENDs that might occur during processing will be trapped and handled within the logic.
- Step 304 obtains catalog environment information, validating that the named catalog is appropriate, and establishing the environment in which the process will execute. In a presently preferred embodiment, much of this information will be the result of specifications on the user command that initiates the process.
- step 306 opens the BCS catalog to be re-org'ed, ensures it is in a stabilized state, and obtains exclusive control of it. To accomplish this, one solution performs the following:
- all program and storage areas are page-fixed (in groups of 100, to avoid excessive spin loops), and the address space is set non-swappable.
- Step 310 calls for reading the BCS catalog's self-describing record (always the first physical record within the catalog), and checking it for existence and validity. If the record is missing, or cannot be validated, the process is terminated, on the basis that the re-org cannot be successful.
- Step 312 the BCS catalog's index structure is validated.
- the speed of the overall re-org will be much greater if the index can be used to retrieve the data component's records in ascending key order, as that will eliminate the requirement to sort the records prior to reload. For that reason, ensuring the validity of the index structure will increase the likelihood of accurately and correctly unloading all records from the data component (index structure errors in a catalog are fairly common, and standard VSAM sequential access to the catalog quite often results in a truncated number of records processed.
- the validation begins at the highest level index record. From it, the vertical pointer to the first record at the level below is used to retrieve that record, and then process across that level to check the horizontal chain pointers, at the same time as all vertical pointers from the level above are checked. When that level is complete, the same logic is applied to the next level below, and so on, until the Sequence Set level ( 272 in FIG. 2 ) is reached. Comparison between the total number of records processed is made against the computed size of the index. If errors are encountered in the index structure, an appropriate error message is issued, and processing terminates.
- the decision to proceed with the re-org depends on whether the sequence set is intact. This is determined by calculating the number of used and free data CIs represented in the sequence set index records. The total should match the HURBA of the data component; otherwise the sequence set is missing data. If that is the case, the re-org is aborted.
- Step 314 during Sequence Set level processing, a Data CI Table is constructed, encoding the logical sequence of all data component CIs within the BCS catalog.
- a Data CI Table is constructed, encoding the logical sequence of all data component CIs within the BCS catalog.
- FIG. 5B reflecting the data CI's of FIG. 5A , as follows.
- the letter inside each control interval indicates the starting character of the key for the records contained in the corresponding control interval.
- CI 2 contains all records that have keys beginning with the letter “B”. Notice CI 3 and 9 are empty.
- the data CI table has one entry for each Data Control interval.
- the Data CI table entry number corresponds to the Data CI number (CI #).
- An entry in the Data CI Table consists of a backward and forward pointer.
- the pointer value is the Data CI number.
- the backward pointer is the left side of the entry (left of the dash line) and the forward pointer is the right side of the entry.
- a minus 1 ( ⁇ 1) pointer value means “no pointer value”—i.e. end of the line either forward or backward.
- An empty, or perhaps “orphaned” Data CI is represented in the table as having ⁇ 1 in both forward and backward pointers—i.e. it is an unconnected, CI.
- the Data CI Table allows us to read the data records in “key sequence”.
- the first index sequence set record (no shown here, but obtained when reading the index records) tells us that the first Data CI (i.e. the data CI with the lowest keyed records) is CI 0 .
- We read Data CI 0 extracting the records. Next we use “0” value to index into the Data CI Table to retrieve the CI 0 table entry.
- CI 0 table entry has a backward pointer of ⁇ 1 and a forward pointer of 2. In this process, we are only interested in forward pointers.
- the value 2 tells us that the next Data CI we need to read is Data CI 2 .
- Data CI 2 contains records with keys starting with “B”.
- After reading Data CI 2 we use the value “2” to index into the Data CI table to retrieve the table entry for CI 2 .
- the table entry for CI 2 contains a backward pointer of 0 and a forward pointer of 8. So the next Data CI to read is CI 8 .
- CI 8 contains records with keys starting with “C”.
- the value “8” is used to index into the CI table to retrieve the CI table entry for CI 8 .
- This table entry has a forward pointer of 4. The reading process continues in this fashion until we finally read CI 1 .
- Now the table entry for CI 1 has a forward pointer of ⁇ 1. ⁇ 1 indicates that there are no more
- step 316 the data CI table ( 500 in FIG. 5B , for example) is used to retrieve each data CI within the data component in ascending key sequence.
- the CI is written to the internal backup (which may comprise a file or dataspace), and is written out to the backup file. (If a Catalog RecoveryPlus BACKUP-format was also requested, the unloaded BCS catalog records are also written to this backup file).
- Step 318 a backup summary report is created, showing a record count for all record types that were encountered during the BCS catalog unload.
- Step 320 the internal backup is read or otherwise verified, to ensure that it can be successfully used to reload the BCS catalog.
- the keys are checked to ensure they are in proper ascending key sequence.
- a verify summary report is created and printed. The record counts between the backup summary and verify summary are compared, and if not equal, the process is terminated. This marks the “point of no return” in that if errors occur from this point forward, the BCS must be recovered from another backup (see 308 ).
- Step 322 begins the actual re-org process of the BCS catalog, and represents the fail-safe point of no-return. This step sets up the environment for the existing BCS catalog data and index structure to be reloaded with its records from the internal backup. The following steps are done:
- the Data CI on a CA boundary is written with a CIDF of binary zeros, to indicate a software EOF in VSAM. All other DATA CIs are written with a CIDF set to indicate an empty CI—i.e. the low order halfword of the CIDF is set with the full free space CI value. Due to the way VSAM update I/O works, each index CI must first be read for update, then re-written. For the data component, they can be written without a prior read.
- the VVRs for the BCS are updated using the VVDS manager to reflect an empty BCS.
- following fields within the VVRs may be updated:
- Step 324 reloads the BCS catalog from the internal backup, with the following detailed steps:
- Step 326 is performed if any BCS re-load errors are encountered, with this logic.
- the highest return code from the attempted re-load is saved and formatted into a message that will hopefully be able to alert the user to the source of the problem.
- next step 328 closes the BCS catalog.
- Step 330 unallocates the BCS and terminates the catalog RESERVE environment.
- a DEQ macro for the SYSIGGV2 resource name is issued, unblocking access to the newly re-org'ed BCS catalog from the current system, and all other MVS systems that have shared access to it.
- Step 332 is a process teardown and clean-up phase, resulting in all storage areas and table areas are freed.
- the program and dynamic storage areas are page freed, and all other open data sets from the process are closed.
- Step 334 terminates the ESTAE environment.
- FIG. 4 is a flow diagram of an alternative embodiment of the invention; one that includes only the most essential steps. This diagram indicates the reference numbers of corresponding steps from FIG. 3 ; the respective explanations of those steps above apply; they need not be repeated here.
Abstract
MVS mainframe computer systems employ the ICF (Integrated Catalog Facility) catalog environment to manage numerous data sets. To provide nearly continuous availability of those data sets, the BCS catalog (250,270) must be re-organized while leaving the catalog open to access by applications. To perform a re-org while open, a data CI correlation table (500) can be constructed (314) and used to lay the data CIs into a backup file in logical order (316), so that they can be loaded into the new BCS catalog (324) without sorting, thereby reducing downtime.
Description
- This application is a continuation of and claims priority to co-pending U.S. patent application Ser. No. 10/783,835, filed Feb. 20, 2004.
- © 2003-2004 Mainstar Software Corporation. A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. 37 CFR §1.71(d).
- This invention is in the field of digital data storage systems and, more specifically, pertains to storage systems that employ ICF catalogs for managing and using data sets.
- The IBM MVS® mainframe operating system has evolved into the primary data server for very large enterprise computer system environments. This new and critical function has increased the availability of the MVS mainframe system, and all data stored within it, to essentially a 24×7 or “always available” level.
- The ICF (Integrated Catalog Facility) catalog environment is a critical component of MVS, as virtually all data or “data sets” within the system must be cataloged within an ICF catalog; they cannot be located for access unless there is a successful search for the data set through the catalog. If the data is not cataloged, or if the necessary catalog is not available, the application attempting to locate it cannot gain access. In even the smallest MVS systems, there are often hundreds of thousands of data sets, and in a large MVS system, the number of data sets is in the tens of millions. All of these data sets are catalogued, except for a very few special cases not important here.
- An ICF catalog consists of two components, the Basic Catalog Structure (BCS) catalog, where the data set's name and disk storage volume location is stored, and the VSAM Volume Data Set (VVDS), where the physical and logical attributes of the data set are stored. Due to MVS system design, most MVS environments, regardless of their size, have a fairly small number of BCS catalogs, typically between 10 and 100 BCS catalogs. A BCS catalog can be physically stored on any disk volume, regardless of the location of the data that it catalogs. Each VVDS is physically stored on the volume on which the data resides that it defines, and therefore, the number of VVDSs is typically equal to the number of volumes that an MVS system has assigned to it. Each VVDS comprises a series of VVRs (VSAM Volume Records).
- As a simple example,
FIG. 1 shows threedata storage volumes catalog 120 resides on volume Vol.001 (110), along with a VVDS 124 which, in turn, defines one or more data sets stored on that volume. Here, one record in theBCS 120 points to a corresponding record in VVDS 124, as indicated by the dashed line, and a record in the VVDS in turn points to a corresponding VSAM data set 126 (“VSAM”) also onvolume 110, as indicated by a dashed line as well. (in general, we will use dashed lines in such drawings to indicate references or pointers.) The BCScatalog 120 also includes a second record that points to a second VVDS 132 on Vol.002 (112), which in turn defines adata set 134 onvolume 112. - As is well known, an MVS system has two types of BCS catalogs—one master catalog that identifies and locates the operating system data sets used by the MVS system, and one or more user catalogs that identify and locate all other data sets that are to be accessible to the system. (BCS 120 is a user catalog.) In order to be usable and accessible on a system, a user catalog must be “connected” to the system via a special record in the master catalog, called a UCAT Connector Record (not shown). Upon first use by the system following IPL, a user catalog is opened to the Catalog Address Space (CAS) catalog management program routines, and unless explicitly closed by an operator command, it remains open to the system for the life of the IPL. As further explained below, one important aspect of the present invention is a method of reorganizing the BCS catalog while it remains open. When data storage devices are shared, that is, concurrently accessible and updateable by multiple operating systems, mechanisms exist to prevent unsynchronized sequences of events from occurring. When the serialization protocols are not adhered to, then the integrity of the physical data can be compromised.
- Because an MVS system has few BCS catalogs, but a very large number of cataloged data sets, a single BCS will often have hundreds of thousands, possibly millions of data sets cataloged within it. These data sets are used by online data base systems that remain in use for weeks at a time, or even longer, and the data sets are not closed throughout that time. The same, or other, data sets are also used by “batch” job streams that are usually scheduled for execution on a daily basis.
- The BCS is considered “in use” as soon as it is opened by CAS, regardless of any open data sets cataloged in the BCS. As mentioned, the BCS remains open for the life of the IPL, unless explicitly closed. As long as it is in use, repair or cleanup catalog management functions cannot be performed.
- MVS data set names are comprised of 1 to 44 characters. A period in a name, counted as a character, has special meaning. Periods are used to separate a name into nodes, called qualifiers. Qualifiers serve the purpose of grouping names for visual identification and masking capabilities. Also, the left most (high level) 1 to 4 qualifiers may be used to identify which catalog the “locate” pointers to a data set are to be recorded in. If a specific catalog is desired for a group of data sets, a special entry called an “alias” is created in the “master catalog,” causing all data sets whose high level qualifier(s) match the defined alias to be cataloged in the corresponding “user catalog.” Subsequent locates for an existing data set will begin by searching the master catalog for an alias match, which in turn directs the locate to the associated user catalog.
- Historically on MVS systems, the data set name high-level qualifier derives from a short-form name of an application, such as PARTS for a manufacturing organization, and therefore, every data set in the PARTS application will have a name that begins with PARTS. The number of data sets in this application could number in the thousands, or tens of thousands.
- Referring again
FIG. 1 , to facilitate the search for a data set (in MVS terminology, this is called the “locate” operation), the data set name is used as a keyed search argument. The BCScatalog 120 is physically a VSAM Key Sequenced Data Set (KSDS), and the key of its records is the data set name. When the catalog record for the data set is located, the volume cell(s) inside the record identifies the disk storage (DASD) volume(s) on which the data set resides, for example 110 or 112, and points by relative address to the data set's descriptive record within the WDS 124, 132 (if the data set is VSAM or nonVSAM SMS managed) or theVTOC 128, 130 (if the data set is nonVSAM nonSMS managed). In the drawing,catalog record 202 inBCS 120 points to volume 001, and specifically to record 208 in the VVDS 124. Another data setrecord 204 points to volume 002 and specifically to record 216 in the VVDS 216, which in turn defines the data set 134.Volume 114 has associatedVTOC 140, WDS 142 and a representative KSDS 144. -
FIG. 2 illustrates a BCS catalog in greater detail. The catalog generally comprises adata component 250 and anindex component 270. Thedata component 250 conceptually comprises a series ofcolumns 252, each column representing one Control Area or CA. The CAs are numbered from left to right beginning with CA.01. Each CA corresponds to a cylinder in DASD storage, and contains at least one Control Interval or CI, for example 254, 256 which can be thought of as a block of data storage records (the minimum I/O block size). Within each CI, there may be gaps, resulting from record deletions or allocated free space. - By standard VSAM design, all records within a KSDS are maintained in logical ascending key sequence—and the BCS catalog is a standard VSAM KSDS. Accordingly, when new cataloged data sets are added, the value of the data set name key determines the location within the BCS data component where the records will be inserted. Pre-allocated “free space” can be reserved in a BCS with the FREESPACE keyword on the IDCAMS DEFINE USERCATALOG command, and this space can be utilized when a new data set is cataloged.
- This pre-allocated free space can be reserved at either (or both) the CI (Control Interval) or CA (Control Area) level, specified as a percentage, and by standard VSAM design will be evenly distributed across the entire file when it is initially loaded (and therefore, is beneficial when record insertions are in the same distribution across the file). For example, in
FIG. 2 , CI levelfree space 257 in CA.00 and CA levelfree space 258 are illustrated. When an existing data set is deleted, its record in the BCS catalog is physically removed, dynamically creating free space that can be utilized if a subsequent new data set of a similar name is cataloged. - When a record insertion is necessary, and sufficient free space at the appropriate location is not available, VSAM automatically performs a “CI split,” moving half of the records in the affected CI to a free CI within the same CA. If a free CI within that CA is not found, VSAM performs a CA split, moving half of the CIs from the affected CA to an entirely new CA at the end of file (EOF) location. If a new CA cannot be found, VSAM allocates a new physical secondary extent of the BCS. The extent limit count for a BCS is 123, and unlike other VSAM data sets, the BCS catalog is restricted to a single volume allocation. If the 123 maximum extent limit is reached, Catalog Management fails the new data set allocation. Subsequent to this, other data sets might still be able to allocate, if the value of their data set name “points” to a location within the BCS catalog where there is sufficient free space.
- The
index component 270 of the BCS is illustrated in simplified conceptual form inFIG. 2 . In the illustration, the first level index or “sequence set” 272 comprises a series of records, e.g. 274, 276 etc., each of which corresponds to a respective CA in the data component.Index record 274 corresponds to CA.00,index record 276 corresponds to CA.01 and so on. Each index record has an entry for each data CI in the corresponding CA, including an indication of the highest key value in that CI. A second level index (if needed) comprises another series of records, e.g. 282, 288 each of which corresponds to a plurality of first level index records. In a second level index record, there is an entry for each first level index record associated with that record, including an indication of the highest key value in the corresponding first level index record. A thirdlevel index record 290 is shown, and there may be more, as needed, associated in this hierarchical fashion, sometimes called a B-tree. At a given index level, horizontal pointers such as 292 form a linked list or chain in key sequential order. - Generally, the BCS catalog is a relatively stable structure, in that the process of cataloging new data sets and deleting existing data sets balances out. After a few CI and CA splits to open up free space in the volatile areas of the catalog are completed, it generally settles down and doesn't grow very much. In situations such as that, a BCS catalog can survive months or years without attention.
- Many MVS systems, though, have one or more catalogs that do not fit this pattern; rather, some catalogs grow very rapidly due to a concentration of new data allocations in one location within the BCS catalog. When this occurs, close attention must be paid to the catalog to minimize the risk of system or application outage when the catalog “fills.” The most frequent cause of this is a data set naming convention for an application that consists of some type of sequence number value within the data set name, resulting in any new data set name being added immediately after the previous ones within the BCS catalog, and if any data sets are deleted, chances are they are the oldest (lowest numbered) data set names. If the sequence numbers are never (or rarely) reused within the data set name, the BCS catalog gets larger and larger, yet emptier and emptier. This is known as the “creeping key” problem in VSAM KSDS files, and is endemic to application files as well as BCS catalogs.
- For any type of VSAM KSDS, whether it's an application file or a BCS catalog, the solution to this problem is a file reorganization (generally called a “re-org”). A file reorganization generally begins with executing a utility program to unload all records in the file to a backup copy; the data set is then physically deleted and redefined (thereby making it empty), and the backed up records are then reloaded. The result is a “reorganization” of the data blocks (CIs and CAs) within the data set, and its physical size is now in proper proportion to the records contained within it. A re-org, for either an application data set or BCS catalog, can be accomplished by IBM or other vendor utility programs.
- In all cases, the re-org process requires that all external points of access to the object dataset or BCS catalog be “quiesced”. In this context, the term “quiesced” means that all other software functions that can physically access the object dataset must be temporarily inhibited from doing so. In the case of the BCS catalog, the accessing programs include the MVS Catalog Management functions available from any active system that has physical access to it.
- In many instances, the BCS catalog resides on a shared DASD volume, allowing Catalog Management on any number of MVS systems to be open to the BCS, updating it with new and deleted data sets, and with applications also open and accessing data sets that are cataloged within the BCS. This sharing across systems complicates the coordination and scheduling necessary to quiescing the BCS as further explained below. For example, various levels of catalog sharing are known in the art, including: (1) Not Shared; (2) Shared only within a single Sysplex; (3) Shared across multiple Sysplexes; and (4) ECS—Enhanced Catalog Sharing. The present invention provides catalog integrity across these various levels of catalog sharing.
- Prior Art BCS Catalog Re-Org Methodologies
- Re-org methodologies for performing a BCS catalog re-org exist. Prior art includes IBM IDCAMS EXPORT/IMPORT, EMC Catalog Solution DUMP/REBUILD, and BACKUP/RESTORE, implemented in software products commercially available from Mainstar Software Corporation, Bellevue, Wash. (assignee of the present invention). These known methodologies do not satisfy the requirements for a re-org while open, as they inherently require the BCS to be quiesced and closed throughout the re-org process. They also require the BCS to be physically deleted and re-defined between the backup and restore processes. If an attempt is made to utilize one of these methodologies for re-org while the BCS catalog is open and active, serious damage will almost certainly occur to the internal structure of the BCS catalog, and any of the jobs (including Catalog Management) may ABEND (abort or end abnormally) with unpredictable results at a subsequent time.
- In the BCS re-org process with these methodologies, the user schedules a quiesce period during which time the BCS catalog will be inaccessible. To ensure that the BCS is not updated between the time of the backup and restore, the MVS operator MODIFY command is issued on all systems sharing access to the catalog, forcing it to close and un-allocate to CAS. At this point, user knowledge of, and strict adherence to procedures, across all systems, must be maintained, as the BCS catalog can automatically re-open if any job is executed that requests access to it.
- When the user is comfortable that the BCS catalog is quiesced, a system backup utility program is executed, to write a copy of the catalog's data records to a physical sequential file. If EXPORT is used, the records are retrieved in ascending key sequence, as standard VSAM sequential read-access through the BCS catalog's index is utilized—this methodology preserves the catalog's necessary record sequence for restoring into the newly-defined and empty BCS. If any of the non-IBM system backup utilities are used, the records are retrieved in physical record sequence, bypassing the BCS catalog's index structure—this methodology protects against potential index structure damage, ensuring that all records from the BCS catalog are retrieved, but it requires that the records are sorted prior to restoring them into the newly-defined and empty BCS.
- When the backup is complete, the existing BCS catalog is deleted, re-defined as a new, empty BCS catalog, and the records from the backup file are then restored with the appropriate utility function with regard to the backup. In some of the prior art methodologies, the delete/define function is automatically performed for the user, while in others the user must do it manually. Also, some prior art methodologies allow certain physical attributes of the BCS catalog to be changed on the new allocation from the existing BCS catalog's attributes. Regardless of the methodology, when the restore operation is complete, system and application processing that might use the catalog can be restarted, and the catalog will re-open as necessary.
- For the BCS, it is very difficult to schedule and perform a re-org. Most BCS catalogs have 24×7 availability requirements, from at least one of the MVS systems that are sharing access to it, and the “down-time” to re-org the BCS is disruptive to production application processing. “Down-time” is defined as the time between closing and re-opening of the catalog, enabling application jobs and online systems to once again resume access to the data sets cataloged within the BCS catalog. During down-time, access to the BCS catalog must be stopped, including allocation of new data sets, deletion of existing data sets, and application access to data within existing data sets is denied. Even if the downtime is planned and scheduled, it represents an outage that might not be acceptable for 24×7 environments. If it is unplanned and a forced situation, it can result in disastrous business disruption. For this reason, many BCS catalogs are re-orged very infrequently. What is needed is a way to re-org a BCS catalog while keeping it open so that catalogued data sets remain continuously available to applications for processing.
- One important aspect of the invention is the ability to re-org a BCS catalog while it is open and accessible to Catalog Management on any number of MVS operating systems that are sharing access to it. In doing so, the invention ensures that any Catalog Management control block information that might require alteration is properly updated as a result of the BCS catalog structural changes that take place during the re-org.
- A primary objective of a BCS catalog re-org process is minimizing Catalog Management down-time (i.e., the necessary window of its unavailability) which in turn results in minimum impact on application jobs that require use of the catalog, while still complying with the various constraints and requirements mentioned above.
- Another objective is to properly re-organize a BCS catalog while open, allowing continued access to data sets listed in the catalog during the re-org process. A further object is to ensure that the re-org results in a valid, usable BCS.
- One especially important objective of the invention is to enable recovering from a failed re-org attempt without catalog data loss or corruption.
- In accordance with the present invention, the BCS catalog can be open and accessible to any number of MVS systems throughout the re-org process. The invention logic suspends all Catalog Management (and other program) access to the BCS catalog during the re-org process, ensuring that content and structural changes to the catalog do not occur throughout the process, but application program access to needed data sets is uninterrupted.
- To provide a “safety net” in the event a structural error is encountered inside the BCS catalog during the re-org, an optional mirror-image backup of the catalog can be taken at the same time as the re-org backup. This backup can subsequently be restored if the re-org process signals an error from which it cannot recover.
- Additional aspects, features and advantages of this invention will be apparent from the following detailed description of preferred embodiments, which proceeds with reference to the accompanying drawings.
-
FIG. 1 is a conceptual diagram illustrating MVS data storage volumes, including a BCS catalog and associated WDS, VTOC and VSAM structures. -
FIG. 2 is a simplified, conceptual diagram of the internal structure of a BCS catalog, depicting the data and index components. -
FIG. 3 is a process flow diagram depicting a method of BCS catalog re-org while open in accordance with the present invention. -
FIG. 4 is a flow diagram depicting an alternative method of BCS catalog re-org while open in accordance with the present invention. -
FIG. 5A is a conceptual illustration of a series of data Control Intervals. -
FIG. 5B is a conceptual illustration of a Data CI Table in accordance with the present invention. - Referring now to
FIG. 3 , thefirst step 302 of a presently preferred embodiment establishes the ESTAE environment, so that any ABENDs that might occur during processing will be trapped and handled within the logic. Step 304 obtains catalog environment information, validating that the named catalog is appropriate, and establishing the environment in which the process will execute. In a presently preferred embodiment, much of this information will be the result of specifications on the user command that initiates the process. Some options are: -
- The name of the single BCS catalog to be re-org'ed. The implementation will require that the BCS to be re-orged must be currently connected to the master catalog as a user catalog. It cannot be the master catalog of the MVS operating system on which the process is run, although it can be a master catalog of another system if it is not currently an active master catalog at the time of the process.
- The catalog is not required to already be open to Catalog Management at the time the re-org process is run, although the user will be required to explicitly state that the process is permitted to execute if the catalog is open.
- The solution will allow the user to optionally request a standard catalog backup be created (in addition to the temporary re-org backup). If the re-org processing fails after the fail-safe point, this backup can be input to a subsequent Mainstar Catalog RecoveryPlus RECOVER command to restore the catalog's records.
- A simulation of the re-org process can be requested. This step will create the switches within the logic for all processes to be accomplished, without performing the actual internal re-org of the catalog. This mode may result in a certain level of system contention, as a shared RESERVE on the SYSIGGV2 resource name will cause update requests against the BCS catalog to be delayed until the re-org process is complete. This is a requirement In order for the simulation mode to be of any use and value.
- System macros to access the BCS catalog environment are well known (Bob, we need to talk about this, as I do not know this for a fact, and inserted it because it is in the other patent application write-up—the CAXWA, for example).
- Next,
step 306 opens the BCS catalog to be re-org'ed, ensures it is in a stabilized state, and obtains exclusive control of it. To accomplish this, one solution performs the following: -
- Issue an MVS store clock instruction or otherwise obtain a current timestamp.
- Check open flags to determine if the catalog is already open on the system. If it is, ensure the user specified the re-org is to take place on an already-open BCS catalog. If not specified, the process is terminated.
- Read the BCS VVR records and obtain the latest BCS refresh timestamp.
- Open the catalog with a standard VSAM OPEN macro.
- Issue a RESERVE macro for the SYSIGGV2 resource name, for exclusive control if it is an actual re-org process, or shared control if in simulate mode. SYSIGGV2 is the standard resource name used by tasks within the Catalog Address Space for serialization of all BCS catalog accesses. Under exclusive control, all read and update requests from other address spaces, including other systems, will stack up behind this RESERVE. Under shared control, only update requests will stack up.
- Obtain the VVRs for the data and index component of the BCS catalog from the WDS on the volume where the BCS catalog resides (either two or three WRs are obtained—one each for the data and index component, and one for the index sequence set if the catalog was defined with the IMBED attribute).
- Compare the BCS refresh timestamp recorded just prior to the OPEN against the latest BCS refresh timestamp in the BCS's data component VVR. If the latest BCS refresh timestamp is greater, that indicates an update to the catalog during our OPEN process, and the OPEN step is performed again. This loop continues until the latest BCS refresh timestamp is equal or less than the one obtained prior to the OPEN process. This process may be repeated up to 10 times at which point the re-org is aborted. (10 is an arbitrary number used to prevent an endless loop).
- From information within the BCS catalog's VVR records, the solution can determine the extent locations for all physical DASD extents for both components, the CI size for both components, and the data component's maximum allowable logical record length.
- Step 308 prepares for the internal backup to be taken, that will subsequently be used to reload the BCS catalog in the re-org operation. (If requested, an optional emergency recovery backup of the BCS catalog's records will be taken at this time, in standard Mainstar® Catalog RecoveryPlus™ BACKUP format.) Taking the internal backup, in accordance with one embodiment of the invention, involves the following detailed steps: First, calculate buffer requirements for reading the index and data component of the BCS catalog, then allocate storage for the buffers. Next, allocate the internal backup data set. To do this, the size of the BCS catalog's data and index components are computed from the respective HURBA divided by CI size. This is then converted into number of DASD tracks, and used for the space allocation quantity of the backup data set. The backup data set is then dynamically allocated and opened. Other techniques can be used for the internal backup, including without limitation using a dataspace rather than a DASD file. Various methods of taking the internal backup should be deemed equivalent to the DASD file approach.
- Preferably, to ensure best possible backup processing performance, all program and storage areas are page-fixed (in groups of 100, to avoid excessive spin loops), and the address space is set non-swappable.
- Step 310 calls for reading the BCS catalog's self-describing record (always the first physical record within the catalog), and checking it for existence and validity. If the record is missing, or cannot be validated, the process is terminated, on the basis that the re-org cannot be successful.
- In
Step 312, the BCS catalog's index structure is validated. The speed of the overall re-org will be much greater if the index can be used to retrieve the data component's records in ascending key order, as that will eliminate the requirement to sort the records prior to reload. For that reason, ensuring the validity of the index structure will increase the likelihood of accurately and correctly unloading all records from the data component (index structure errors in a catalog are fairly common, and standard VSAM sequential access to the catalog quite often results in a truncated number of records processed. - The validation begins at the highest level index record. From it, the vertical pointer to the first record at the level below is used to retrieve that record, and then process across that level to check the horizontal chain pointers, at the same time as all vertical pointers from the level above are checked. When that level is complete, the same logic is applied to the next level below, and so on, until the Sequence Set level (272 in
FIG. 2 ) is reached. Comparison between the total number of records processed is made against the computed size of the index. If errors are encountered in the index structure, an appropriate error message is issued, and processing terminates. - All vertical and horizontal pointers in the index are checked to the extent that they fall within the boundaries of the high allocated RBA of the Index. Ultimately, the decision to proceed with the re-org depends on whether the sequence set is intact. This is determined by calculating the number of used and free data CIs represented in the sequence set index records. The total should match the HURBA of the data component; otherwise the sequence set is missing data. If that is the case, the re-org is aborted.
- In
Step 314, during Sequence Set level processing, a Data CI Table is constructed, encoding the logical sequence of all data component CIs within the BCS catalog. Such a table is illustrated inFIG. 5B , reflecting the data CI's ofFIG. 5A , as follows. Referring toFIG. 5A , the letter inside each control interval indicates the starting character of the key for the records contained in the corresponding control interval. For example,CI 2 contains all records that have keys beginning with the letter “B”.Notice CI FIG. 5B , The data CI table has one entry for each Data Control interval. The Data CI table entry number corresponds to the Data CI number (CI #). - The numbers and letters appearing below each entry are for reference purposes and do not constitute any data within the entry. An entry in the Data CI Table consists of a backward and forward pointer. The pointer value is the Data CI number. The backward pointer is the left side of the entry (left of the dash line) and the forward pointer is the right side of the entry. A minus 1 (−1) pointer value means “no pointer value”—i.e. end of the line either forward or backward. An empty, or perhaps “orphaned”, Data CI is represented in the table as having −1 in both forward and backward pointers—i.e. it is an unconnected, CI. If one were to read the Data CIs in sequential order and extract the records, we would have records with keys starting with “A” followed by records with keys starting with “Z” followed by records with keys starting with “B”, and so on. Note that after reading the CI with “B” keys, we would read an empty CI, a wasted I/O operation. The Data CI Table allows us to read the data records in “key sequence”. The first index sequence set record (no shown here, but obtained when reading the index records) tells us that the first Data CI (i.e. the data CI with the lowest keyed records) is
CI 0. We readData CI 0, extracting the records. Next we use “0” value to index into the Data CI Table to retrieve theCI 0 table entry.CI 0 table entry has a backward pointer of −1 and a forward pointer of 2. In this process, we are only interested in forward pointers. Thevalue 2 tells us that the next Data CI we need to read isData CI 2.Data CI 2 contains records with keys starting with “B”. After readingData CI 2, we use the value “2” to index into the Data CI table to retrieve the table entry forCI 2. The table entry forCI 2 contains a backward pointer of 0 and a forward pointer of 8. So the next Data CI to read isCI 8.CI 8 contains records with keys starting with “C”. Next, the value “8” is used to index into the CI table to retrieve the CI table entry forCI 8. This table entry has a forward pointer of 4. The reading process continues in this fashion until we finally readCI 1. Now the table entry forCI 1 has a forward pointer of −1. −1 indicates that there are no more Data CIs to read. - Returning now to
FIG. 3 ,step 316, the data CI table (500 inFIG. 5B , for example) is used to retrieve each data CI within the data component in ascending key sequence. The CI is written to the internal backup (which may comprise a file or dataspace), and is written out to the backup file. (If a Catalog RecoveryPlus BACKUP-format was also requested, the unloaded BCS catalog records are also written to this backup file). InStep 318, a backup summary report is created, showing a record count for all record types that were encountered during the BCS catalog unload. - In
Step 320, the internal backup is read or otherwise verified, to ensure that it can be successfully used to reload the BCS catalog. The keys are checked to ensure they are in proper ascending key sequence. A verify summary report is created and printed. The record counts between the backup summary and verify summary are compared, and if not equal, the process is terminated. This marks the “point of no return” in that if errors occur from this point forward, the BCS must be recovered from another backup (see 308). - Step 322 begins the actual re-org process of the BCS catalog, and represents the fail-safe point of no-return. This step sets up the environment for the existing BCS catalog data and index structure to be reloaded with its records from the internal backup. The following steps are done:
- If the BCS is open on the system where the re-org process is running, there will be a CAXWA entry for this BCS. Set BCS refresh indicators in the CAXWA. Since the presently preferred embodiment code still holds the RESERVE on the SYSIGGV2 resource name, this will take place immediately after the re-org is complete.
- The Data CI on a CA boundary is written with a CIDF of binary zeros, to indicate a software EOF in VSAM. All other DATA CIs are written with a CIDF set to indicate an empty CI—i.e. the low order halfword of the CIDF is set with the full free space CI value. Due to the way VSAM update I/O works, each index CI must first be read for update, then re-written. For the data component, they can be written without a prior read.
- At end of processing, all buffers associated with any data and index component ACB are invalidated, and a check of all buffers is make to ensure they have all been physically written out to the BCS. Specifically, we invalidate buffers that have I/O complete (BUFCEPT in BUFCFLG1 on) and NOT waiting to be written (BUFCMW in BUFCIOFL off). Thus the current process traverses the buffer chain looking for buffers with BUFCEPT on and BUFCMW off. If we find one, we invalidate it by turning off the BUFCVAL in BUFCFLG1. All asynchronous I/O to the BCS catalog is now complete, or if not, there is an error condition somewhere in this process.
- Several AMDSB and ARDB control block fields are now zeroes out, for both the index and data component, making them appear empty (i.e., to appear as if they are newly defined and at the “initial load” state for VSAM). This includes the following fields:
-
- The high-level index record pointer—this address points by RBA to the highest level index record. When zero (along with a zero HURBA value), it indicates there are no index records. For an empty BCS with IMBED, the high-level index pointer and the first sequence set pointer may be non-zero. So the “empty” criteria is more specifically when the sequence-set pointer and the HURBA are equal. For an non-IMBED index component, the value is zero; for IMBED index component it is the RBA value of the first sequence set (which is usually non-zero for IMBED).
- The high-key RBA and high-used RBA—for VSAM, these are the effective end-of-file address pointer, and when zero they indicate an empty component.
- The VVRs for the BCS are updated using the VVDS manager to reflect an empty BCS.
- More specifically, in some embodiments, following fields within the VVRs may be updated:
-
- The DCI ICF refresh timestamp of the data component VVR is incremented to indicate refresh is required.
- The hi-used RBA in the data set information cell of the index component VVR is set to zero, which indicates an empty index component.
- The VVR DSB is updated to reflect an empty BCS.
- The sharing subcell (used for ISC and CDSC catalogs) of the Data DSB VVR is updated with the corresponding INDEX component values for HURBA, HARBA, high-level RBA, and number of index levels. If IMBED, sequence set HURBA and HARBA values are updated. The update count is incremented by the number of slot entries+1 (this forces ISC and CDSC cache flush in CAS). And finally, the shared event table is cleared.
- The volume type 23 cell is updated with high key, high used and high allocated RBA values.
- The cross-system sharing information within the VVR for the Data Component is appropriately updated to communicate the alterations of the re-organized BCS to all MVS systems which have access to it.
- Step 324 reloads the BCS catalog from the internal backup, with the following detailed steps:
-
- The empty BCS is reloaded using standard VSAM I/O from data records obtained from the internal backup.
- When EOF is reached on the internal backup file, the BCS catalog is closed using a standard VSAM CLOSE macro.
- R&D testing of the embodiment determined that certain VVR fields are not automatically updated, so prior to the official CLOSE of the catalog in
Step 13. The RBA values in the INDEX and Data component WRs that were previously reset (cf [0061], are now updated with new values obtained from the VSAM controls blocks for the BCS—specifically the DSB and ARDB control blocks for both the INDEX and DATA component.” The important fields that CLOSE does not update are the DSI cell creation timestamp and the “25-cell” in the data component. The update of the DSI creation timestamp is crucial to this process. - A re-load summary message is created and written, to provide to the user a visual comparison between the number of BCS catalog records before and after the re-org.
- Step 326 is performed if any BCS re-load errors are encountered, with this logic. The highest return code from the attempted re-load is saved and formatted into a message that will hopefully be able to alert the user to the source of the problem.
- If no errors are detected, the
next step 328 closes the BCS catalog. - The Recovery Process
- If errors are encountered, an attempt is made to recover the BCS to its pre-REORG state. This is done by first “emptying” the BCS using VSAM Control Interval access; the INDEX component CIs are rewritten with binary zeros; the Data component CIs are rewritten with binary zeros for CIs on a CA boundary and with a CIDF field set to a full free space CI value for CIs not on a CA boundary.
- Next, using VSAM Control Interval access and the full CI images from the internal backup, the BCS is rewritten exactly as it was prior to the REORG. Finally, the original VVR records are rewritten back to the VVDS. If this RECOVERY attempt fails, an informative message is issued and the BCS must be recovered external to REORG. If optional CR+ backup file was created during the REORG, this can be used.
- If executing in SIMULATE mode, or if the re-org process has terminated prior to the load process because of an error condition, a standard VSAM CLOSE is issued, writing the WRs for the catalog to the VVDS and re-synchronizing CAS as a result of the VVR update.
- Step 330 unallocates the BCS and terminates the catalog RESERVE environment. A DEQ macro for the SYSIGGV2 resource name is issued, unblocking access to the newly re-org'ed BCS catalog from the current system, and all other MVS systems that have shared access to it.
- Step 332 is a process teardown and clean-up phase, resulting in all storage areas and table areas are freed. The program and dynamic storage areas are page freed, and all other open data sets from the process are closed.
- Step 334 terminates the ESTAE environment.
-
FIG. 4 is a flow diagram of an alternative embodiment of the invention; one that includes only the most essential steps. This diagram indicates the reference numbers of corresponding steps fromFIG. 3 ; the respective explanations of those steps above apply; they need not be repeated here.
Claims (17)
1. A computer-implemented data structure stored in machine-readable memory for use in re-organizing or restoring an ICF catalog in a VSAM mainframe storage environment, the data structure comprising:
a correlation table having a series of entries, each entry corresponding to a physical CI number in a BCS data component; and
wherein each entry in the table contains a first pointer to a CI containing lower keys and a second pointer to a CI containing higher keys, so that the table contents together form a logical list of the CIs.
2. The computer-implemented data structure of claim 1 wherein a predetermined value is used in the table to indicate an end of a chain of key values.
3. The computer-implemented data structure of claim 1 wherein a predetermined pointer value is used in the table to indicate an empty data CI.
4. The computer-implemented data structure of claim 1 wherein a predetermined pointer value is used in the table to indicate an end of a chain of key values.
5. The computer-implemented data structure of claim 1 wherein each entry further includes a backward pointer.
6. The computer-implemented data structure of claim 1 wherein each table entry that does not correspond to a data CI containing the high key includes a forward pointer identifying a data CI having a next key in a predetermined key sequence.
7. A data structure stored in machine-readable memory for storing a correlation between a number of logical keys of a BCS data set and one or more respective physical locations of the data set, for use in reorganizing the BCS while open.
8. A data structure according to claim 7 wherein the data structure is comprised of a table for storing a correlation between the logical order of the data CIs of a BCS data set and the physical location of the data CIs, for use in reorganizing the BCS while open.
9. A data structure according to claim 7 wherein the correlation comprises a correlation between the logical order of the keyed records of a BCS data set and the respective data CIs that contain them.
10. A logical CI correlation table stored in machine-readable memory for use in re-organizing or restoring an ICF catalog in a VSAM storage environment, the correlation table comprising:
a series of entries, each entry corresponding to a physical CI number in the BCS data component; and
each entry including a first pointer to a CI containing lower keys and a second pointer to a CI containing higher keys, so that the table contents together form a logical list of the CIs.
11. A correlation table for use in re-organizing an ICF catalog in a VSAM storage environment, the correlation table comprising:
a series of entries, each entry corresponding to one of the data CI's in the catalog, and wherein each entry in the table comprises a forward pointer to support reading the data records in key sequence.
12. A correlation table according to claim 11 , wherein a predetermined value is used in the table to indicate either end of a chain of key values.
13. A correlation table according to claim 11 , wherein a predetermined pointer value is used in the table to indicate an empty data CI.
14. A correlation table according to claim 11 , wherein a predetermined pointer value is used in the table to indicate an end of a chain of key values.
15. A correlation table according to claim 11 , wherein each entry further includes a backward pointer.
16. A correlation table according to claim 11 , wherein each table entry that does not correspond to a data CI containing the high key includes a forward pointer identifying the data CI having a next key in a predetermined key sequence.
17. A computer-implemented method of reorganizing an ICF catalog comprising a key sequential data set (KSDS) BCS in a VSAM system while the catalog is open, the BCS comprising a data component and an index component, the reorganization method comprising the steps of:
(a) the catalog with exclusive control;
(b) creating a backup of the index component;
(c) based on sequence set records of the index component, determining, for each data CI in a data set, a physical location of the CI in the data component and a logical location of the CI in key sequence order;
(d) reading data CIs from the data component out to an internal backup data set in potential logical key sequence order so as to form an ordered backup of the data without sorting;
(e) clearing all data CI's in the data component and clearing the index component;
(f) updating the BCS VSAM control blocks so as to reflect an empty BCS;
(g) reloading the data set from the ordered backup, sorting records if necessary, and using standard VSAM I/O to reload the data records and reconstruct the index; and
(h) closing the catalog so as to update VVRs in the VVDS and re-sync it with CAS.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/537,971 US20070088769A1 (en) | 2004-02-20 | 2006-10-02 | Reorganization and repair of an icf catalog while open and in-use in a digital data storage system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/783,835 US7158999B2 (en) | 2004-02-20 | 2004-02-20 | Reorganization and repair of an ICF catalog while open and in-use in a digital data storage system |
US11/537,971 US20070088769A1 (en) | 2004-02-20 | 2006-10-02 | Reorganization and repair of an icf catalog while open and in-use in a digital data storage system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/783,835 Continuation US7158999B2 (en) | 2004-02-20 | 2004-02-20 | Reorganization and repair of an ICF catalog while open and in-use in a digital data storage system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20070088769A1 true US20070088769A1 (en) | 2007-04-19 |
Family
ID=34861347
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/783,835 Active 2025-07-14 US7158999B2 (en) | 2004-02-20 | 2004-02-20 | Reorganization and repair of an ICF catalog while open and in-use in a digital data storage system |
US11/537,971 Abandoned US20070088769A1 (en) | 2004-02-20 | 2006-10-02 | Reorganization and repair of an icf catalog while open and in-use in a digital data storage system |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/783,835 Active 2025-07-14 US7158999B2 (en) | 2004-02-20 | 2004-02-20 | Reorganization and repair of an ICF catalog while open and in-use in a digital data storage system |
Country Status (4)
Country | Link |
---|---|
US (2) | US7158999B2 (en) |
EP (1) | EP1723565A2 (en) |
CA (1) | CA2556414A1 (en) |
WO (1) | WO2005083596A2 (en) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080217151A1 (en) * | 2007-03-08 | 2008-09-11 | Ls Industrial Systems Co., Ltd | Automatic discharging apparatus for closing spring in air circuit breaker and air circuit breaker having the same |
US20080256070A1 (en) * | 2004-06-18 | 2008-10-16 | Stuart John Inglis | Data Collection Cataloguing and Searching Method and System |
US20090216781A1 (en) * | 2008-02-25 | 2009-08-27 | Chauvet Philip R | Technique for Dynamic Creation of a User Catalog for a Storage System |
US20090281983A1 (en) * | 2008-05-06 | 2009-11-12 | International Business Machines Corporation | Methods, Systems, and Computer Program Products for Viewing File Information |
US20100077255A1 (en) * | 2008-09-22 | 2010-03-25 | International Business Machines Corporation | Catalog recovery through system management facilities reverse transversal |
US20100094832A1 (en) * | 2008-10-15 | 2010-04-15 | Scott Michael R | Catalog Performance Plus |
US20100185697A1 (en) * | 2009-01-22 | 2010-07-22 | International Business Machines Corporation | Maintaining a data structure with data set names and pointers to a plurality of catalogs |
US20100185589A1 (en) * | 2009-01-15 | 2010-07-22 | International Business Machines Corporation | Disaster recovery data sync |
US20100191738A1 (en) * | 2009-01-28 | 2010-07-29 | International Business Machines Corporation | Apparatus, system, and method for modifying data set names |
US20110167302A1 (en) * | 2010-01-07 | 2011-07-07 | International Business Machines Corporation | Diagnostic data set component |
US20110173154A1 (en) * | 2010-01-09 | 2011-07-14 | International Business Machines Corporation | Catalog reorganization apparatus and method |
US20110238638A1 (en) * | 2010-03-29 | 2011-09-29 | International Business Machines Corporation | Methods and systems for obtaining and correcting an index record for a virtual storage access method keyed sequential data set |
US20120078922A1 (en) * | 2010-09-29 | 2012-03-29 | International Business Machines Corporation | Data reorganization |
US20140279859A1 (en) * | 2013-03-15 | 2014-09-18 | International Business Machines Corporation | Index record-level locking for file systems using a b+tree structure |
US20170193000A1 (en) * | 2013-07-17 | 2017-07-06 | International Business Machines Corporation | Recovering from a pending uncompleted reorganization of a data set |
US9798495B2 (en) * | 2015-12-01 | 2017-10-24 | International Business Machines Corporation | Metadata-based bypassing in a controller |
US10606802B2 (en) | 2017-05-15 | 2020-03-31 | International Business Machines Corporation | Catalog backup and recovery using logical mirroring |
US10628402B2 (en) | 2017-09-27 | 2020-04-21 | International Business Machines Corporation | Full data set avoidance |
US10740036B2 (en) * | 2013-03-12 | 2020-08-11 | Sap Se | Unified architecture for hybrid database storage using fragments |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7590668B2 (en) * | 2005-04-15 | 2009-09-15 | Microsoft Corporation | Pausable backups of file system items |
US7356493B2 (en) * | 2005-08-26 | 2008-04-08 | International Business Machines Corporation | Apparatus and method for passing information between catalogs in a computer operating system |
US8584122B2 (en) | 2006-03-31 | 2013-11-12 | Ebay Inc. | Batch scheduling |
US7900088B1 (en) * | 2006-09-29 | 2011-03-01 | Emc Corporation | System for performing incremental file system check |
US7624127B2 (en) * | 2006-11-08 | 2009-11-24 | International Business Machines Corporation | Apparatus, system, and method for automating VTOC driven data set maintenance |
US7769853B2 (en) * | 2007-06-12 | 2010-08-03 | International Business Machines Corporation | Method for automatic discovery of a transaction gateway daemon of specified type |
US8341121B1 (en) * | 2007-09-28 | 2012-12-25 | Emc Corporation | Imminent failure prioritized backup |
US7783609B2 (en) * | 2008-01-24 | 2010-08-24 | International Business Machines Corporation | Storing information in otherwise unused space in VTOC and VVDS for recovery of data |
US8291186B2 (en) * | 2008-08-21 | 2012-10-16 | International Business Machines Corporation | Volume record data set optimization apparatus and method |
US8140886B2 (en) * | 2008-09-30 | 2012-03-20 | International Business Machines Corporation | Apparatus, system, and method for virtual storage access method volume data set recovery |
US8392423B2 (en) * | 2010-07-02 | 2013-03-05 | International Business Machines Corporation | Data set index record preservation |
US8290987B2 (en) | 2010-07-12 | 2012-10-16 | International Business Machines Corporation | Processing of splits of control areas and control intervals |
US9037901B2 (en) * | 2011-08-19 | 2015-05-19 | International Business Machines Corporation | Data set autorecovery |
US8943104B2 (en) * | 2011-08-30 | 2015-01-27 | International Business Machines Corporation | Dynamic record management for systems utilizing virtual storage access method (VSAM) data sets with a corresponding VSAM control block structure |
US9400817B2 (en) * | 2013-12-31 | 2016-07-26 | Sybase, Inc. | In-place index repair |
US10223379B2 (en) * | 2014-09-04 | 2019-03-05 | International Business Machines Corporation | Parallel processing of a keyed index file system |
US9582348B2 (en) | 2015-02-17 | 2017-02-28 | International Business Machines Corporation | Correcting overlapping data sets in a volume |
US9785517B2 (en) | 2015-06-10 | 2017-10-10 | International Business Machines Corporation | Rebuilding damaged areas of a volume table using a volume data set |
US10013316B2 (en) | 2015-08-10 | 2018-07-03 | International Business Machines Corporation | Replicating a source data set to a target data store |
CN105550345B (en) * | 2015-12-25 | 2019-03-26 | 百度在线网络技术(北京)有限公司 | File operation method and device |
US10346289B2 (en) | 2016-06-30 | 2019-07-09 | International Business Machines Corporation | Run time workload threshold alerts for customer profiling visualization |
US10540265B2 (en) | 2016-06-30 | 2020-01-21 | International Business Machines Corporation | Using test workload run facts and problem discovery data as input for business analytics to determine test effectiveness |
US10380010B2 (en) | 2016-06-30 | 2019-08-13 | International Business Machines Corporation | Run time and historical workload report scores for customer profiling visualization |
US10684939B2 (en) | 2016-09-08 | 2020-06-16 | International Business Machines Corporation | Using workload profiling and analytics to understand and score complexity of test environments and workloads |
US10643168B2 (en) | 2016-09-08 | 2020-05-05 | International Business Machines Corporation | Using customer and workload profiling and analytics to determine, score, and report portability of customer and test environments and workloads |
US10592911B2 (en) | 2016-09-08 | 2020-03-17 | International Business Machines Corporation | Determining if customer characteristics by customer geography, country, culture or industry may be further applicable to a wider customer set |
US10521751B2 (en) | 2016-09-08 | 2019-12-31 | International Business Machines Corporation | Using customer profiling and analytics to understand, rank, score, and visualize best practices |
US10467128B2 (en) | 2016-09-08 | 2019-11-05 | International Business Machines Corporation | Measuring and optimizing test resources and test coverage effectiveness through run time customer profiling and analytics |
US10423579B2 (en) * | 2016-09-08 | 2019-09-24 | International Business Machines Corporation | Z/OS SMF record navigation visualization tooling |
US10586242B2 (en) | 2016-09-08 | 2020-03-10 | International Business Machines Corporation | Using customer profiling and analytics to understand customer workload complexity and characteristics by customer geography, country and culture |
US10664786B2 (en) | 2016-09-08 | 2020-05-26 | International Business Machines Corporation | Using run time and historical customer profiling and analytics to determine customer test vs. production differences, and to enhance customer test effectiveness |
US10394701B2 (en) | 2016-09-14 | 2019-08-27 | International Business Machines Corporation | Using run time and historical customer profiling and analytics to iteratively design, develop, test, tune, and maintain a customer-like test workload |
US10643228B2 (en) | 2016-09-14 | 2020-05-05 | International Business Machines Corporation | Standardizing customer and test data and information collection for run time and historical profiling environments and workload comparisons |
US10621072B2 (en) | 2016-09-14 | 2020-04-14 | International Business Machines Corporation | Using customer profiling and analytics to more accurately estimate and generate an agile bill of requirements and sprints for customer or test workload port |
US10628840B2 (en) | 2016-09-14 | 2020-04-21 | International Business Machines Corporation | Using run-time and historical customer profiling and analytics to determine and score customer adoption levels of platform technologies |
US11327849B2 (en) | 2020-05-05 | 2022-05-10 | International Business Machines Corporation | Catalog restoration |
Citations (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4494226A (en) * | 1981-10-15 | 1985-01-15 | Burroughs Corporation | Three beam optical memory system |
US5222235A (en) * | 1990-02-01 | 1993-06-22 | Bmc Software, Inc. | Databases system for permitting concurrent indexing and reloading of data by early simulating the reload process to determine final locations of the data |
US5267226A (en) * | 1987-12-03 | 1993-11-30 | Canon Kabushiki Kaisha | Optical information recording and reproducing apparatus with switchable spot-functions |
US5554921A (en) * | 1993-12-23 | 1996-09-10 | Motorola, Inc. | Battery charger apparatus and method with multiple range current control |
US5649152A (en) * | 1994-10-13 | 1997-07-15 | Vinca Corporation | Method and system for providing a static snapshot of data stored on a mass storage system |
US6185127B1 (en) * | 2000-01-31 | 2001-02-06 | Summit Microelectronics, Inc. | Selectable analog functions on a configurable device and method employing nonvolatile memory |
US6297617B1 (en) * | 1999-09-07 | 2001-10-02 | Kabushiki Kaisha Toyoda Jidoshokki Seisakusho | Battery charger and charge control circuit |
US6318819B1 (en) * | 1998-02-07 | 2001-11-20 | Continental Teves Ag & Co., Ohg | Method for handling errors in an electronic brake system and corresponding device |
US6351110B1 (en) * | 1999-04-29 | 2002-02-26 | Stmicroelectronics S.R.L. | Battery charger with current regulating circuit |
US6353305B1 (en) * | 2000-05-26 | 2002-03-05 | Agere Systems Guardian Corp. | Battery charger where the charge current rate is set by a switch modulated with a variable duty cycle |
US6366056B1 (en) * | 1999-06-08 | 2002-04-02 | Enrev Corporation | Battery charger for lithium based batteries |
US6369561B1 (en) * | 1999-04-29 | 2002-04-09 | Stmicroelectronics S.R.L. | Method and apparatus for charging a battery |
US6400124B1 (en) * | 2000-12-18 | 2002-06-04 | Mitsubishi Denki Kabushiki Kaisha | Battery charger |
US6404169B1 (en) * | 2001-08-23 | 2002-06-11 | Randall Wang | Auto-controller for battery charger using thermo-control and current balance technology |
US6420853B1 (en) * | 2000-11-17 | 2002-07-16 | Hitachi Koki Co., Ltd. | Battery charger capable of accurately determining fully charged condition regardless of batteries with different charge chracteristics |
US6433517B2 (en) * | 1998-02-28 | 2002-08-13 | Makita Corporation | Battery charger and charging method |
US6437549B1 (en) * | 2000-08-31 | 2002-08-20 | Monolithic Power Systems, Inc. | Battery charger |
US6456035B1 (en) * | 1998-08-14 | 2002-09-24 | Milwaukee Electric Tool Corporation | Battery charger, method of and software program for operating a battery charger, and method of and combination for charging a battery |
US6459237B1 (en) * | 2000-06-13 | 2002-10-01 | Hewlett-Packard Company | Battery charger apparatus and method |
US20020159347A1 (en) * | 2001-03-09 | 2002-10-31 | Sony Corporation | Optical disc device and control method for optical disc device |
US6476584B2 (en) * | 1999-03-25 | 2002-11-05 | Makita Corporation | Battery charger and battery charging method |
US6498461B1 (en) * | 2001-08-17 | 2002-12-24 | O2 Micro International Limited | Voltage mode, high accuracy battery charger |
US6507172B2 (en) * | 2001-03-19 | 2003-01-14 | Maxim Integrated Products, Inc. | Universal serial bus powered battery charger |
US6518726B1 (en) * | 2002-01-18 | 2003-02-11 | Eagle-Picher Technologies, L.L.C. | Battery charger and charge control system |
US6580249B2 (en) * | 2001-09-03 | 2003-06-17 | Gpe International Limited | Intelligent serial battery charger and charging block |
US20030111980A1 (en) * | 2001-12-19 | 2003-06-19 | Sk Teletech Co., Ltd. | Battery charger of mobile phone using constant voltage and pulse, and high speed charge method for the same |
US6586917B1 (en) * | 2001-10-19 | 2003-07-01 | National Semiconductor Corporation | Battery charger shunt regulator with dual feedback control |
US20030135478A1 (en) * | 2001-05-31 | 2003-07-17 | Computer Associates Think, Inc. | Method and system for online reorganization of databases |
US6617827B2 (en) * | 2001-07-26 | 2003-09-09 | Qualcomm, Incorporated | Battery charger with sequential charging |
US6630812B1 (en) * | 2002-05-02 | 2003-10-07 | Lsi Logic Corporation | Standard high volume battery charger |
US6664765B2 (en) * | 2002-01-30 | 2003-12-16 | Denso Corporation | Lithium-ion battery charger power limitation method |
US6791300B2 (en) * | 2002-02-28 | 2004-09-14 | Black & Decker Inc. | Battery charger and charging method |
US6791879B1 (en) * | 2002-09-23 | 2004-09-14 | Summit Microelectronics, Inc. | Structure and method for programmable and non-volatile analog signal storage for a precision voltage reference |
US6791297B2 (en) * | 2002-07-22 | 2004-09-14 | Honeywell International Inc. | Battery charger |
US6794851B2 (en) * | 2002-02-28 | 2004-09-21 | Mitsumi Electric Co., Ltd. | Charging circuit and battery charger |
US20040189251A1 (en) * | 2003-03-28 | 2004-09-30 | Kutkut Nasser H. | Modular and reconfigurable rapid battery charger |
US6822423B2 (en) * | 2001-09-03 | 2004-11-23 | Gpe International Limited | Intelligent serial battery charger and charging block |
US6833685B2 (en) * | 2002-02-19 | 2004-12-21 | Black & Decker Inc. | Battery charger with standby mode |
US6844705B2 (en) * | 2002-12-09 | 2005-01-18 | Intersil Americas Inc. | Li-ion/Li-polymer battery charger configured to be DC-powered from multiple types of wall adapters |
US6859016B2 (en) * | 2001-09-26 | 2005-02-22 | Denso Corporation | Lithium-ion battery charger input pre-regulator |
US20050083016A1 (en) * | 2001-09-03 | 2005-04-21 | Gpe International Limited | Intelligent serial battery charger |
US6919709B2 (en) * | 2002-07-18 | 2005-07-19 | Alcatel | Battery charger |
US20050275381A1 (en) * | 2004-06-09 | 2005-12-15 | Guang Huang T | Battery charger with dual use microprocessor |
US7002266B1 (en) * | 2002-11-13 | 2006-02-21 | Summit Microelectronics | Active DC output control and method for DC/DC converter |
US20060113138A1 (en) * | 2002-10-24 | 2006-06-01 | Christof Maron | Method and device for transmitting safety-critical operating conditions of a motor vehicle |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5355477A (en) * | 1991-12-23 | 1994-10-11 | International Business Machines Corporation | Method for updating a block using record-level locks by committing the update if the block has not been updated by another process otherwise spinning |
-
2004
- 2004-02-20 US US10/783,835 patent/US7158999B2/en active Active
-
2005
- 2005-02-18 CA CA002556414A patent/CA2556414A1/en not_active Abandoned
- 2005-02-18 WO PCT/US2005/005414 patent/WO2005083596A2/en not_active Application Discontinuation
- 2005-02-18 EP EP05723394A patent/EP1723565A2/en not_active Withdrawn
-
2006
- 2006-10-02 US US11/537,971 patent/US20070088769A1/en not_active Abandoned
Patent Citations (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4494226A (en) * | 1981-10-15 | 1985-01-15 | Burroughs Corporation | Three beam optical memory system |
US5267226A (en) * | 1987-12-03 | 1993-11-30 | Canon Kabushiki Kaisha | Optical information recording and reproducing apparatus with switchable spot-functions |
US5222235A (en) * | 1990-02-01 | 1993-06-22 | Bmc Software, Inc. | Databases system for permitting concurrent indexing and reloading of data by early simulating the reload process to determine final locations of the data |
US5554921A (en) * | 1993-12-23 | 1996-09-10 | Motorola, Inc. | Battery charger apparatus and method with multiple range current control |
US5649152A (en) * | 1994-10-13 | 1997-07-15 | Vinca Corporation | Method and system for providing a static snapshot of data stored on a mass storage system |
US6318819B1 (en) * | 1998-02-07 | 2001-11-20 | Continental Teves Ag & Co., Ohg | Method for handling errors in an electronic brake system and corresponding device |
US6433517B2 (en) * | 1998-02-28 | 2002-08-13 | Makita Corporation | Battery charger and charging method |
US6605926B2 (en) * | 1998-08-14 | 2003-08-12 | Milwaukee Electric Tool Corporation | Battery charger |
US6456035B1 (en) * | 1998-08-14 | 2002-09-24 | Milwaukee Electric Tool Corporation | Battery charger, method of and software program for operating a battery charger, and method of and combination for charging a battery |
US6476584B2 (en) * | 1999-03-25 | 2002-11-05 | Makita Corporation | Battery charger and battery charging method |
US6351110B1 (en) * | 1999-04-29 | 2002-02-26 | Stmicroelectronics S.R.L. | Battery charger with current regulating circuit |
US6369561B1 (en) * | 1999-04-29 | 2002-04-09 | Stmicroelectronics S.R.L. | Method and apparatus for charging a battery |
US6366056B1 (en) * | 1999-06-08 | 2002-04-02 | Enrev Corporation | Battery charger for lithium based batteries |
US6297617B1 (en) * | 1999-09-07 | 2001-10-02 | Kabushiki Kaisha Toyoda Jidoshokki Seisakusho | Battery charger and charge control circuit |
US6185127B1 (en) * | 2000-01-31 | 2001-02-06 | Summit Microelectronics, Inc. | Selectable analog functions on a configurable device and method employing nonvolatile memory |
US6353305B1 (en) * | 2000-05-26 | 2002-03-05 | Agere Systems Guardian Corp. | Battery charger where the charge current rate is set by a switch modulated with a variable duty cycle |
US6459237B1 (en) * | 2000-06-13 | 2002-10-01 | Hewlett-Packard Company | Battery charger apparatus and method |
US6437549B1 (en) * | 2000-08-31 | 2002-08-20 | Monolithic Power Systems, Inc. | Battery charger |
US6420853B1 (en) * | 2000-11-17 | 2002-07-16 | Hitachi Koki Co., Ltd. | Battery charger capable of accurately determining fully charged condition regardless of batteries with different charge chracteristics |
US6400124B1 (en) * | 2000-12-18 | 2002-06-04 | Mitsubishi Denki Kabushiki Kaisha | Battery charger |
US20020159347A1 (en) * | 2001-03-09 | 2002-10-31 | Sony Corporation | Optical disc device and control method for optical disc device |
US6507172B2 (en) * | 2001-03-19 | 2003-01-14 | Maxim Integrated Products, Inc. | Universal serial bus powered battery charger |
US20030135478A1 (en) * | 2001-05-31 | 2003-07-17 | Computer Associates Think, Inc. | Method and system for online reorganization of databases |
US6617827B2 (en) * | 2001-07-26 | 2003-09-09 | Qualcomm, Incorporated | Battery charger with sequential charging |
US6498461B1 (en) * | 2001-08-17 | 2002-12-24 | O2 Micro International Limited | Voltage mode, high accuracy battery charger |
US6611129B2 (en) * | 2001-08-17 | 2003-08-26 | O2Micro International Limited | Voltage mode, high accuracy battery charger |
US6404169B1 (en) * | 2001-08-23 | 2002-06-11 | Randall Wang | Auto-controller for battery charger using thermo-control and current balance technology |
US6580249B2 (en) * | 2001-09-03 | 2003-06-17 | Gpe International Limited | Intelligent serial battery charger and charging block |
US6822423B2 (en) * | 2001-09-03 | 2004-11-23 | Gpe International Limited | Intelligent serial battery charger and charging block |
US20050083016A1 (en) * | 2001-09-03 | 2005-04-21 | Gpe International Limited | Intelligent serial battery charger |
US6859016B2 (en) * | 2001-09-26 | 2005-02-22 | Denso Corporation | Lithium-ion battery charger input pre-regulator |
US6586917B1 (en) * | 2001-10-19 | 2003-07-01 | National Semiconductor Corporation | Battery charger shunt regulator with dual feedback control |
US20030111980A1 (en) * | 2001-12-19 | 2003-06-19 | Sk Teletech Co., Ltd. | Battery charger of mobile phone using constant voltage and pulse, and high speed charge method for the same |
US6518726B1 (en) * | 2002-01-18 | 2003-02-11 | Eagle-Picher Technologies, L.L.C. | Battery charger and charge control system |
US6664765B2 (en) * | 2002-01-30 | 2003-12-16 | Denso Corporation | Lithium-ion battery charger power limitation method |
US6833685B2 (en) * | 2002-02-19 | 2004-12-21 | Black & Decker Inc. | Battery charger with standby mode |
US6791300B2 (en) * | 2002-02-28 | 2004-09-14 | Black & Decker Inc. | Battery charger and charging method |
US6794851B2 (en) * | 2002-02-28 | 2004-09-21 | Mitsumi Electric Co., Ltd. | Charging circuit and battery charger |
US6630812B1 (en) * | 2002-05-02 | 2003-10-07 | Lsi Logic Corporation | Standard high volume battery charger |
US6919709B2 (en) * | 2002-07-18 | 2005-07-19 | Alcatel | Battery charger |
US6791297B2 (en) * | 2002-07-22 | 2004-09-14 | Honeywell International Inc. | Battery charger |
US6791879B1 (en) * | 2002-09-23 | 2004-09-14 | Summit Microelectronics, Inc. | Structure and method for programmable and non-volatile analog signal storage for a precision voltage reference |
US20060113138A1 (en) * | 2002-10-24 | 2006-06-01 | Christof Maron | Method and device for transmitting safety-critical operating conditions of a motor vehicle |
US7002266B1 (en) * | 2002-11-13 | 2006-02-21 | Summit Microelectronics | Active DC output control and method for DC/DC converter |
US6844705B2 (en) * | 2002-12-09 | 2005-01-18 | Intersil Americas Inc. | Li-ion/Li-polymer battery charger configured to be DC-powered from multiple types of wall adapters |
US6917184B2 (en) * | 2002-12-09 | 2005-07-12 | Intersil Americas Inc. | Li-ion/Li-polymer battery charger configured to be DC-powered from multiple types of wall adapters |
US20040189251A1 (en) * | 2003-03-28 | 2004-09-30 | Kutkut Nasser H. | Modular and reconfigurable rapid battery charger |
US20050275381A1 (en) * | 2004-06-09 | 2005-12-15 | Guang Huang T | Battery charger with dual use microprocessor |
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080256070A1 (en) * | 2004-06-18 | 2008-10-16 | Stuart John Inglis | Data Collection Cataloguing and Searching Method and System |
US7640256B2 (en) * | 2004-06-18 | 2009-12-29 | Real Time Genomics Inc. | Data collection cataloguing and searching method and system |
US20080217151A1 (en) * | 2007-03-08 | 2008-09-11 | Ls Industrial Systems Co., Ltd | Automatic discharging apparatus for closing spring in air circuit breaker and air circuit breaker having the same |
US20090216781A1 (en) * | 2008-02-25 | 2009-08-27 | Chauvet Philip R | Technique for Dynamic Creation of a User Catalog for a Storage System |
US20090281983A1 (en) * | 2008-05-06 | 2009-11-12 | International Business Machines Corporation | Methods, Systems, and Computer Program Products for Viewing File Information |
US8447794B2 (en) * | 2008-05-06 | 2013-05-21 | International Business Machines Corporation | Methods, systems, and computer program products for viewing file information |
US20100077255A1 (en) * | 2008-09-22 | 2010-03-25 | International Business Machines Corporation | Catalog recovery through system management facilities reverse transversal |
US8024519B2 (en) | 2008-09-22 | 2011-09-20 | International Business Machines Corporation | Catalog recovery through system management facilities reverse transversal |
US8719300B2 (en) * | 2008-10-15 | 2014-05-06 | International Business Machines Corporation | Catalog performance plus |
US20100094832A1 (en) * | 2008-10-15 | 2010-04-15 | Scott Michael R | Catalog Performance Plus |
US20100185589A1 (en) * | 2009-01-15 | 2010-07-22 | International Business Machines Corporation | Disaster recovery data sync |
US10223205B2 (en) * | 2009-01-15 | 2019-03-05 | International Business Machines Corporation | Disaster recovery data sync |
US9495408B2 (en) | 2009-01-22 | 2016-11-15 | International Business Machines Corporation | Maintaining a data structure with data set names and pointers to a plurality of catalogs |
US20100185697A1 (en) * | 2009-01-22 | 2010-07-22 | International Business Machines Corporation | Maintaining a data structure with data set names and pointers to a plurality of catalogs |
US9165022B2 (en) | 2009-01-22 | 2015-10-20 | International Business Machines Corporation | Maintaining a data structure with data set names and pointers to a plurality of catalogs |
US8234242B2 (en) * | 2009-01-22 | 2012-07-31 | International Business Machines Corporation | Maintaining a data structure with data set names and pointers to a plurality of catalogs |
US20120203784A1 (en) * | 2009-01-22 | 2012-08-09 | International Business Machines Corporation | Maintaining a data structure with data set names and pointers to a plurality of catalogs |
US8495029B2 (en) * | 2009-01-22 | 2013-07-23 | International Business Machines Corporation | Maintaining a data structure with data set names and pointers to a plurality of catalogs |
US20100191738A1 (en) * | 2009-01-28 | 2010-07-29 | International Business Machines Corporation | Apparatus, system, and method for modifying data set names |
US8577890B2 (en) | 2009-01-28 | 2013-11-05 | International Business Machines Corporation | Modifying data set name qualifiers |
US20110167302A1 (en) * | 2010-01-07 | 2011-07-07 | International Business Machines Corporation | Diagnostic data set component |
US10133618B2 (en) | 2010-01-07 | 2018-11-20 | International Business Machines Corporation | Diagnostic data set component |
US8458519B2 (en) * | 2010-01-07 | 2013-06-04 | International Business Machines Corporation | Diagnostic data set component |
US8775872B2 (en) | 2010-01-07 | 2014-07-08 | International Business Machines Corporation | Diagnostic data set component |
US20140298102A1 (en) * | 2010-01-07 | 2014-10-02 | International Business Machines Corporation | Diagnostic data set component |
US9274876B2 (en) * | 2010-01-07 | 2016-03-01 | International Business Machines Corporation | Diagnostic data set component |
US8423505B2 (en) | 2010-01-09 | 2013-04-16 | International Business Machines Corporation | Catalog reorganization apparatus and method |
US20110173154A1 (en) * | 2010-01-09 | 2011-07-14 | International Business Machines Corporation | Catalog reorganization apparatus and method |
US8527481B2 (en) | 2010-03-29 | 2013-09-03 | International Business Machines Corporation | Methods and systems for obtaining and correcting an index record for a virtual storage access method keyed sequential data set |
US20110238638A1 (en) * | 2010-03-29 | 2011-09-29 | International Business Machines Corporation | Methods and systems for obtaining and correcting an index record for a virtual storage access method keyed sequential data set |
US8655892B2 (en) * | 2010-09-29 | 2014-02-18 | International Business Machines Corporation | Data reorganization |
US20120078922A1 (en) * | 2010-09-29 | 2012-03-29 | International Business Machines Corporation | Data reorganization |
US10740036B2 (en) * | 2013-03-12 | 2020-08-11 | Sap Se | Unified architecture for hybrid database storage using fragments |
US20140279859A1 (en) * | 2013-03-15 | 2014-09-18 | International Business Machines Corporation | Index record-level locking for file systems using a b+tree structure |
US9672220B2 (en) * | 2013-03-15 | 2017-06-06 | International Business Machines Corporation | Index record-level locking for record-oriented file systems |
US9361332B2 (en) * | 2013-03-15 | 2016-06-07 | International Business Machines Corporation | Index record-level locking for file systems using a B+ tree structure |
US20170193000A1 (en) * | 2013-07-17 | 2017-07-06 | International Business Machines Corporation | Recovering from a pending uncompleted reorganization of a data set |
US9798495B2 (en) * | 2015-12-01 | 2017-10-24 | International Business Machines Corporation | Metadata-based bypassing in a controller |
US10168959B2 (en) | 2015-12-01 | 2019-01-01 | International Business Machines Corporation | Metadata-based bypassing in a controller |
US10606802B2 (en) | 2017-05-15 | 2020-03-31 | International Business Machines Corporation | Catalog backup and recovery using logical mirroring |
US10628402B2 (en) | 2017-09-27 | 2020-04-21 | International Business Machines Corporation | Full data set avoidance |
Also Published As
Publication number | Publication date |
---|---|
US7158999B2 (en) | 2007-01-02 |
WO2005083596A2 (en) | 2005-09-09 |
WO2005083596A3 (en) | 2006-06-29 |
EP1723565A2 (en) | 2006-11-22 |
US20050187990A1 (en) | 2005-08-25 |
CA2556414A1 (en) | 2005-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070088769A1 (en) | Reorganization and repair of an icf catalog while open and in-use in a digital data storage system | |
US6651073B1 (en) | Method and apparatus for insuring database data integrity without data recovery logging | |
US6567928B1 (en) | Method and apparatus for efficiently recovering from a failure in a database that includes unlogged objects | |
US4498145A (en) | Method for assuring atomicity of multi-row update operations in a database system | |
US7970748B2 (en) | Systems and methods for reorganizing a database object | |
US10042910B2 (en) | Database table re-partitioning using two active partition specifications | |
US5530855A (en) | Replicating a database by the sequential application of hierarchically sorted log records | |
Strickland et al. | IMS/VS: An evolving system | |
US8156165B2 (en) | Transaction-safe FAT files system | |
US5455944A (en) | Method for managing logging and locking of page free space information in a transaction processing system | |
KR930002331B1 (en) | Method and apparatus for concurrent modification of an index tree | |
RU2182360C2 (en) | Method for computer system stored data access, method for data filing, and computer system for implementing these methods | |
US6519613B1 (en) | Non-blocking drain method and apparatus for use in processing requests on a resource | |
US7203802B2 (en) | System and method for using a buffer to facilitate log catchup for online operations | |
US7234077B2 (en) | Rapid restoration of file system usage in very large file systems | |
US5946700A (en) | Method and apparatus for preserving non-current information that can be overwritten in a computer file | |
US7672966B2 (en) | Adding extrinsic data columns to an existing database schema using a temporary column pool | |
US6772177B2 (en) | System and method for parallelizing file archival and retrieval | |
US5740434A (en) | System for maintenance of database integrity | |
US20030135478A1 (en) | Method and system for online reorganization of databases | |
US20070174325A1 (en) | Method and system for building a database from backup data images | |
US20040243773A1 (en) | Methods and systems for moving data objects | |
US20020065834A1 (en) | Maintenance of data integrity during transfer among computer networks | |
US6192376B1 (en) | Method and apparatus for shadowing a hierarchical file system index structure to enable error recovery | |
US8640136B2 (en) | Sharing objects between computer systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |