EP0336548A2

Supporting long fields of recoverable database records in a computer system.

Abstract

A long field file, managed using log-based recovery mechanisms, contains values associated with large data set items and contains allocation information controlling long field file space. Each long field has a compact descriptor pointing to associated multi-page block(s) of data in the long field file. The descriptor is in the database record which logically contains the long field. Long field data is shadowed in the long field file during updates and changes to the descriptor and long field file allocation information are logged. During long field data value deletion or replacement, the allocation information for the corresponding space in the long field file is marked free and locked until the deleting transaction completes, thereby insuring that deletes are undoable. Support for storage, access and maintenance of long fields as logically integral components of recoverable database records is provided as well as row-level concurrency in minimization of long field data in the recovery log. Duplication in storing before and after images of long field data in the log is avoided. More efficient management of memory space freed by deletion of long field records is provided. Long field data is transferable directly without intermediate buffering including entire multi-page blocks of data and such transfer is effected with a single access to the storage device containing the data.

EP0336548A2, drawing sheet 1
Sheet 1 of 10

Term

Term ended

Projected expiry passed 24 February 2009, 17.6 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

16 claims: 8 independent, 8 dependent

  1. 1
    A method of operating a computer system for transaction rollback of database records having long fields, comprising the steps of:generating a data file comprised of said database records having a plurality of long field descriptors associated therewith;generating a long field file comprised of said long field records having allocation page data associated therewith;maintaining stored shadow copies corresponding to said long field records and updates to said long field records;generating an undo log in functional response to changes to said database;and restoring said long field descriptors in corresponding ones of said database records and said allocation page data in response to said undo log.
  2. 4
    A method according to any one of the previous claims including the further step of:isolating transactions concurrently accessing said long fields.
  3. 6
    A method according to any one of the previous claims including the further step of:reserving long field file space occupied by one of said shadow copies until a transaction associated therewith is completed or rolled back.
  4. 8
    A method according to any one of the previous claims including the further step of:accessing one of said allocation pages of said long field file by a plurality of concurrent transactions.
  5. 9
    A method according to any one of the previous claims wherein said log manages recovery of concurrent updates by different transactions to one database page.
  6. 10
    A method of operating a computer system for storing, maintaining, and accessing database fields stored from database pages, comprising the steps of:generating long field data values;storing said data values in separate blocks of memory in at least one first file;generating a plurality of long field descriptors each associated with a different one of said blocks and identifying where said each descriptor is located in said memory;and storing said long field descriptors in at least one second file.
  7. 13
    A method according to any one of claims 10 to claim 12 wherein each of said long field descriptors contains all information necessary to locate said associated blocks of long field data in said long field file.
  8. 15
    A computer system for use in storing, maintaining, and accessing database fields stored from database pages, comprising means for generating long field data values;means for storing said data values in separate blocks of memory in at least one first file;means for generating a plurality of long field descriptors each associated with a different one of said blocks and identifying where said each descriptor is located in said memory and means for storing said long field descriptors in at least one second file.