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

System and method for automatically modifying database access methods to insert database object handling instructions

Assignee: Sun Microsystems Inc
•
Filing: 1996-02-09
•
Granted: 2000-10-03
•
Expires: 2016-02-09
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system and method for automatically converting a compiled program that accesses objects stored in main memory into a program that accesses and updates persistently stored objects. An initial computer program includes original instructions for accessing and updating objects in at least a first object class. The original instructions access and update objects in a computer's main memory. The system automatically revises the initial computer program to generate a revised computer program by adding to the original instructions object loading instructions and object storing instructions. During execution of the revised computer program, the object loading instructions load a copy of one of the persistently stored objects into a corresponding object in the computer's main memory when the object is accessed for a first time. The object storing instructions copy objects in the computer's main memory that contain new or modified data into corresponding persistently stored objects upon the occurrence of predefined events, such as the completion of a transaction. The system further revises the initial computer program to generate the revised computer program by adding to the original instructions dirty object marking instructions that, during execution of the revised computer program, keep track of which objects in the computer's main memory contain new and/or updated data. The object storing instructions copy only those of the objects in the computer's main memory that contain new and/or updated data.

Inventors

  • 👤 Theron D. Tock
  • 👤 Roderic G. G. Cattell

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 19:33
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/30; G06F9/00; G06F9/06; G06F9/44; G06F9/448; G06F9/4488; G06F9/4493; Y; Y10; Y10S; Y10S707/00; Y10S707/99931

Claims Analysis

Total Claims: 27
Claim 1
Independent Claim 410 words
A method of generating object-oriented computer programs for accessing and updating persistently stored objects, wherein the method is performed under program control by a computer, the method comprising the steps of: receiving an initial computer program that includes original instructions for accessing objects stored in a computer's main memory; scanning the initial computer program to automatically identify object accessing instructions and corresponding program locations at which additional instructions are to be added representing a first subset of identified program locations; automatically, under computer program control, revising said initial computer program to generate a revised computer program by: adding object loading instructions to the initial computer program at the first subset of the identified program locations, wherein the added object loading instructions, during execution of said revised computer program, load respective ones of said objects from persistent storage into said main memory when each said respective object is accessed for a first time; wherein said received initial computer program also includes original instructions for updating objects stored in the computer's main memory; the method further including: scanning said initial computer program to automatically identify object updating instructions and corresponding program locations at which additional instructions are to be added representing a second subset of program locations; said revising step further including, automatically, under computer program control, revising said initial computer program by: adding object storing instructions to said initial computer program at the second subset of the identified program locations, wherein the added object storing instructions, during execution of said revised computer program, store respective ones of said objects in said computer's main memory into said persistent storage upon the occurrence of predefined events; wherein said objects accessed and updated by said original instructions include objects in a first set of object classes, and said objects stored in said persistent storage by said object storing instructions include objects in a second set of object classes that is a subset of said first set of object classes; said original instructions include object data structure defining instructions for defining data structures associated with said objects in said first set of object classes; said revising step further includes: adding supplemental object definition instructions that revise said data structures associated with said second set of object classes so as to enable said objects in said second set of object classes to store both main memory object pointers and persistent storage object identifiers for objects referenced by said objects in said second set of object classes.
Claim 2
Independent Claim 410 words
A method of generating object-oriented computer programs for accessing and updating persistently stored objects, wherein the method is performed under program control by a computer, the method comprising the steps of: receiving an initial computer program that includes original instructions for accessing objects stored in a computer's main memory; scanning the initial computer program to automatically identify object accessing instructions and corresponding program locations at which additional instructions are to be added representing a first subset of identified program locations; automatically, under computer program control, revising said initial computer program to generate a revised computer program by: adding object loading instructions to the initial computer program at the first subset of the identified program locations, wherein the added object loading instructions, during execution of said revised computer program, load respective ones of said objects from persistent storage into said main memory when each said respective object is accessed for a first time; wherein said received initial computer program also includes original instructions for updating objects stored in the computer's main memory; the method further including: scanning said initial computer program to automatically identify object updating instructions and corresponding program locations at which additional instructions are to be added representing a second subset of program locations; said revising step further including, automatically, under computer program control, revising said initial computer program by: adding object storing instructions to said initial computer program at the second subset of the identified program locations, wherein the added object storing instructions, during execution of said revised computer program, store respective ones of said objects in said computer's main memory into said persistent storage upon the occurrence of predefined events; wherein said objects accessed and updated by said original instructions include objects in a first set of object classes, and said objects stored in said persistent storage by said object storing instructions include objects in a second set of object classes that is a subset of said first set of object classes; said original instructions include object data structure defining instructions for defining data structures associated with said objects in said first set of object classes; said revising step further includes: adding supplemental object definition instructions that revise said data structures associated with said second set of object classes so as to enable said objects in said second set of object classes to store both main memory object pointers and persistent storage object identifiers for objects referenced by said objects in said second set of object classes.
Claim 3
Dependent Claim 68 words
The method of claim 1, said revising step further including: adding dirty object marking instructions to the initial computer program that, during execution of said revised computer program, store data indicating which objects in said computer's main memory contain new and/or updated data; wherein said object storing instructions store in said persistent storage those of said objects in said computer's main memory that contain new and/or updated data.
Claim 4
Dependent Claim 71 words
The method of claim 1, wherein objects loaded into said main memory by said object loading instructions include null object pointers for objects in persistent storage that are referenced by said objects loaded in said main memory; said revising step includes revising said initial computer program so that said object loading instructions are invoked whenever a null object pointer in an object in said second set of object classes is accessed.
Claim 5
Dependent Claim 14 words
The method of claim 1 wherein the objects are rows in a database table.
Claim 6
Independent Claim 297 words
A method of generating object-oriented computer programs for accessing and updating persistently stored objects, wherein the method is performed under program control by a computer, the method comprising the steps of: receiving an initial computer program that includes original instructions for accessing objects stored in a computer's main memory; scanning the initial computer program to automatically identify object accessing instructions and corresponding program locations at which additional instructions are to be added representing a first subset of identified program locations; automatically, under computer program control, revising said initial computer program to generate a revised computer program by: adding object loading instructions to the initial computer program at the first subset of the identified program locations, wherein the added object loading instructions, during execution of said revised computer program, load respective ones of said objects from persistent storage into said main memory when each said respective object is accessed for a first time; wherein said initial computer program is a bytecode program; said objects accessed and updated by said original instructions include objects in a first set of object classes, and said objects stored in said persistent storage by said object storing instructions include objects in a second set of object classes that is a subset of said first set of object classes; said original instructions include object data structure defining instructions for defining data structures associated with said objects in said first set of object classes; said revising step further includes: adding supplemental object definition instructions that revise said data structures associated with said second set of object classes so as to enable said objects in said second set of object classes to store both main memory object pointers and persistent storage object identifiers for objects referenced by said objects in said second set of object classes.
Claim 7
Independent Claim 297 words
A method of generating object-oriented computer programs for accessing and updating persistently stored objects, wherein the method is performed under program control by a computer, the method comprising the steps of: receiving an initial computer program that includes original instructions for accessing objects stored in a computer's main memory; scanning the initial computer program to automatically identify object accessing instructions and corresponding program locations at which additional instructions are to be added representing a first subset of identified program locations; automatically, under computer program control, revising said initial computer program to generate a revised computer program by: adding object loading instructions to the initial computer program at the first subset of the identified program locations, wherein the added object loading instructions, during execution of said revised computer program, load respective ones of said objects from persistent storage into said main memory when each said respective object is accessed for a first time; wherein said initial computer program is a bytecode program; said objects accessed and updated by said original instructions include objects in a first set of object classes, and said objects stored in said persistent storage by said object storing instructions include objects in a second set of object classes that is a subset of said first set of object classes; said original instructions include object data structure defining instructions for defining data structures associated with said objects in said first set of object classes; said revising step further includes: adding supplemental object definition instructions that revise said data structures associated with said second set of object classes so as to enable said objects in said second set of object classes to store both main memory object pointers and persistent storage object identifiers for objects referenced by said objects in said second set of object classes.
Claim 8
Dependent Claim 71 words
The method of claim 5, wherein objects loaded into said main memory by said object loading instructions include null object pointers for objects in persistent storage that are referenced by said objects loaded in said main memory; said revising step includes revising said initial computer program so that said object loading instructions are invoked whenever a null object pointer in an object in said second set of object classes is accessed.
Claim 9
Dependent Claim 14 words
The method of claim 5 wherein the objects are rows in a database table.
Claim 10
Dependent Claim 445 words
A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising: a postprocessor procedure for modifying an initial computer program that includes original instructions for accessing objects stored in a computer's main memory; said postprocessor procedure including instructions for: scanning the initial computer program to automatically identify object accessing instructions and corresponding program locations at which additional instructions are to be added representing a first subset of identified program locations, automatically, under the processor's control, revising said initial computer program to generate a revised computer program by adding supplemental instructions to said initial computer program, said supplemental instructions including: object loading instructions, added to the initial computer program at the first subset of the identified program locations, wherein the added object loading instructions, during execution of said revised computer program, load respective ones of said objects from persistent storage into said main memory when each said respective object is accessed for a first time; wherein said initial computer program also includes original instructions for updating objects stored in said computer's main memory; said postprocessor procedure also includes instructions for: scanning said initial computer program to automatically identify object updating instructions and corresponding program locations at which additional instructions are to be added representing a second subset of identified program locations; automatically revising said initial computer program to generate said revised computer program by adding supplemental instructions to said initial computer program, said supplemental instructions including: object storing instructions, added to said initial computer program at the second subset of the identified program locations, wherein the added object storing instructions, during execution of said revised computer program, store respective ones of said objects in said computer's main memory into said persistent storage upon the occurrence of predefined events; said objects accessed and updated by said original instructions include objects in a first set of object classes, and said objects stored in said persistent storage by said object storing instructions include objects in a second set of object classes that is a subset of said first set of object classes; said original instructions include object data structure defining instructions for defining data structures associated with said objects in said first set of object classes; said supplemental instructions further include: supplemental object definition instructions that revise said data structures associated with said second set of object classes so as to enable said objects in said second set of object classes to store both main memory object pointers and persistent storage object identifiers for objects referenced by said objects in said second set of object classes.
Claim 11
Dependent Claim 445 words
A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising: a postprocessor procedure for modifying an initial computer program that includes original instructions for accessing objects stored in a computer's main memory; said postprocessor procedure including instructions for: scanning the initial computer program to automatically identify object accessing instructions and corresponding program locations at which additional instructions are to be added representing a first subset of identified program locations, automatically, under the processor's control, revising said initial computer program to generate a revised computer program by adding supplemental instructions to said initial computer program, said supplemental instructions including: object loading instructions, added to the initial computer program at the first subset of the identified program locations, wherein the added object loading instructions, during execution of said revised computer program, load respective ones of said objects from persistent storage into said main memory when each said respective object is accessed for a first time; wherein said initial computer program also includes original instructions for updating objects stored in said computer's main memory; said postprocessor procedure also includes instructions for: scanning said initial computer program to automatically identify object updating instructions and corresponding program locations at which additional instructions are to be added representing a second subset of identified program locations; automatically revising said initial computer program to generate said revised computer program by adding supplemental instructions to said initial computer program, said supplemental instructions including: object storing instructions, added to said initial computer program at the second subset of the identified program locations, wherein the added object storing instructions, during execution of said revised computer program, store respective ones of said objects in said computer's main memory into said persistent storage upon the occurrence of predefined events; said objects accessed and updated by said original instructions include objects in a first set of object classes, and said objects stored in said persistent storage by said object storing instructions include objects in a second set of object classes that is a subset of said first set of object classes; said original instructions include object data structure defining instructions for defining data structures associated with said objects in said first set of object classes; said supplemental instructions further include: supplemental object definition instructions that revise said data structures associated with said second set of object classes so as to enable said objects in said second set of object classes to store both main memory object pointers and persistent storage object identifiers for objects referenced by said objects in said second set of object classes.
Claim 12
Dependent Claim 63 words
The computer program product of claim 8, said supplemental instructions including: dirty object marking instructions that, during execution of said revised computer program, store data indicating which objects in said computer's main memory contain new and/or updated data; wherein said object storing instructions store in said persistent storage those of said objects in said computer's main memory that contain new and/or updated data.
Claim 13
Dependent Claim 72 words
The computer program product of claim 8, wherein objects loaded into said main memory by said object loading instructions include null object pointers for objects in persistent storage that are referenced by said objects loaded in said main memory; said postprocessor procedure revises said initial computer program so that said object loading instructions are invoked whenever a null object pointer in an object in said second set of object classes is accessed.
Claim 14
Dependent Claim 16 words
The computer program product of claim 8 wherein the objects are rows in a database table.
Claim 15
Dependent Claim 321 words
A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising: a postprocessor procedure for modifying an initial computer program that includes original instructions for accessing objects stored in a computer's main memory, said postprocessor procedure including instructions for: scanning the initial computer program to automatically identify object accessing instructions and corresponding program locations at which additional instructions are to be added representing a first subset of identified program locations, automatically, under the processor's control, revising said initial computer program to generate a revised computer program by adding supplemental instructions to said initial computer program, said supplemental instructions including: object loading instructions, added to the initial computer program at the first subset of the identified program locations, wherein the added object loading instructions, during execution of said revised computer program, load respective ones of said objects from persistent storage into said main memory when each said respective object is accessed for a first time; wherein said initial computer program is a bytecode program; said objects accessed and updated by said original instructions include objects in a first set of object classes, and said objects stored in said persistent storage by said object storing instructions include objects in a second set of object classes that is a subset of said first set of object classes; said original instructions include object data structure defining instructions for defining data structures associated with said objects in said first set of object classes; said supplemental instructions further include: supplemental object definition instructions that revise said data structures associated with said second set of object classes so as to enable said objects in said second set of object classes to store both main memory object pointers and persistent storage object identifiers for objects referenced by said objects in said second set of object classes.
Claim 16
Dependent Claim 321 words
A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising: a postprocessor procedure for modifying an initial computer program that includes original instructions for accessing objects stored in a computer's main memory, said postprocessor procedure including instructions for: scanning the initial computer program to automatically identify object accessing instructions and corresponding program locations at which additional instructions are to be added representing a first subset of identified program locations, automatically, under the processor's control, revising said initial computer program to generate a revised computer program by adding supplemental instructions to said initial computer program, said supplemental instructions including: object loading instructions, added to the initial computer program at the first subset of the identified program locations, wherein the added object loading instructions, during execution of said revised computer program, load respective ones of said objects from persistent storage into said main memory when each said respective object is accessed for a first time; wherein said initial computer program is a bytecode program; said objects accessed and updated by said original instructions include objects in a first set of object classes, and said objects stored in said persistent storage by said object storing instructions include objects in a second set of object classes that is a subset of said first set of object classes; said original instructions include object data structure defining instructions for defining data structures associated with said objects in said first set of object classes; said supplemental instructions further include: supplemental object definition instructions that revise said data structures associated with said second set of object classes so as to enable said objects in said second set of object classes to store both main memory object pointers and persistent storage object identifiers for objects referenced by said objects in said second set of object classes.
Claim 17
Dependent Claim 72 words
The computer program product of claim 12, wherein objects loaded into said main memory by said object loading instructions include null object pointers for objects in persistent storage that are referenced by said objects loaded in said main memory; said postprocessor procedure revises said initial computer program so that said object loading instructions are invoked whenever a null object pointer in an object in said second set of object classes is accessed.
Claim 18
Dependent Claim 16 words
The computer program product of claim 12 wherein the objects are rows in a database table.
Claim 19
Dependent Claim 442 words
A computer system, comprising: memory, including a main memory for storing objects; said memory further storing an initial computer program, a revised computer program and a postprocessor procedure for modifying an initial computer program that includes original instructions for accessing objects stored in said main memory; said postprocessor procedure including instructions for: scanning said initial computer program to automatically identify object accessing instructions and corresponding program locations at which additional instructions are to be added representing a first subset of identified program locations; automatically, under control of said postprocessor procedure, revising said initial computer program to generate a revised computer program by adding supplemental instructions to said initial computer program, said supplemental instructions including: object loading instructions, added to the initial computer program at the first subset of the identified program locations, wherein the added object loading instructions, during execution of said revised computer program, load respective ones of said objects from persistent storage into said main memory when each said respective object is accessed for a first time; wherein said initial computer program includes original instructions for updating objects stored in said main memory; said postprocessor procedure also includes instructions for: scanning said initial computer program to automatically identify object updating instructions and corresponding program locations at which additional instructions are to be added representing a second subset of identified program locations; automatically, under control of said postprocessor procedure, revising said initial computer program to generate a revised computer program by adding supplemental instructions to said initial computer program, said supplemental instructions including: object storing instructions, added to said initial computer program at the second subset of the identified program locations, wherein the added object storing instructions, during execution of said revised computer program, store respective ones of said objects in said computer's main memory into said persistent storage upon the occurrence of predefined events; said objects accessed and updated by said original instructions include objects in a first set of object classes, and said objects stored in said persistent storage by said object storing instructions include objects in a second set of object classes that is a subset of said first set of object classes; said original instructions include object data structure defining instructions for defining data structures associated with said objects in said first set of object classes; and said supplemental instructions further include: supplemental object definition instructions that revise said data structures associated with said second set of object classes so as to enable said objects in said second set of object classes to store both main memory object pointers and persistent storage object identifiers for objects referenced by said objects in said second set of object classes.
Claim 20
Dependent Claim 442 words
A computer system, comprising: memory, including a main memory for storing objects; said memory further storing an initial computer program, a revised computer program and a postprocessor procedure for modifying an initial computer program that includes original instructions for accessing objects stored in said main memory; said postprocessor procedure including instructions for: scanning said initial computer program to automatically identify object accessing instructions and corresponding program locations at which additional instructions are to be added representing a first subset of identified program locations; automatically, under control of said postprocessor procedure, revising said initial computer program to generate a revised computer program by adding supplemental instructions to said initial computer program, said supplemental instructions including: object loading instructions, added to the initial computer program at the first subset of the identified program locations, wherein the added object loading instructions, during execution of said revised computer program, load respective ones of said objects from persistent storage into said main memory when each said respective object is accessed for a first time; wherein said initial computer program includes original instructions for updating objects stored in said main memory; said postprocessor procedure also includes instructions for: scanning said initial computer program to automatically identify object updating instructions and corresponding program locations at which additional instructions are to be added representing a second subset of identified program locations; automatically, under control of said postprocessor procedure, revising said initial computer program to generate a revised computer program by adding supplemental instructions to said initial computer program, said supplemental instructions including: object storing instructions, added to said initial computer program at the second subset of the identified program locations, wherein the added object storing instructions, during execution of said revised computer program, store respective ones of said objects in said computer's main memory into said persistent storage upon the occurrence of predefined events; said objects accessed and updated by said original instructions include objects in a first set of object classes, and said objects stored in said persistent storage by said object storing instructions include objects in a second set of object classes that is a subset of said first set of object classes; said original instructions include object data structure defining instructions for defining data structures associated with said objects in said first set of object classes; and said supplemental instructions further include: supplemental object definition instructions that revise said data structures associated with said second set of object classes so as to enable said objects in said second set of object classes to store both main memory object pointers and persistent storage object identifiers for objects referenced by said objects in said second set of object classes.
Claim 21
Dependent Claim 62 words
The computer system of claim 15, said supplemental instructions including: dirty object marking instructions that, during execution of said revised computer program, store data indicating which objects in said computer's main memory contain new and/or updated data; wherein said object storing instructions store in said persistent storage those of said objects in said computer's main memory that contain new and/or updated data.
Claim 22
Dependent Claim 71 words
The computer system of claim 15, wherein objects loaded into said main memory by said object loading instructions include null object pointers for objects in persistent storage that are referenced by said objects loaded in said main memory; said postprocessor procedure revises said initial computer program so that said object loading instructions are invoked whenever a null object pointer in an object in said second set of object classes is accessed.
Claim 23
Dependent Claim 15 words
The computer system of claim 15 wherein the objects are rows in a database table.
Claim 24
Dependent Claim 314 words
A computer system, comprising: memory, including a main memory for storing objects; said memory further storing an initial computer program, a revised computer program and a postprocessor procedure for modifying an initial computer program that includes original instructions for accessing objects stored in said main memory; said postprocessor procedure including instructions for: scanning said initial computer program to automatically identify object accessing instructions and corresponding program locations at which additional instructions are to be added representing a first subset of identified program locations; automatically, under control of said postprocessor procedure, revising said initial computer program to generate a revised computer program by adding supplemental instructions to said initial computer program, said supplemental instructions including: object loading instructions, added to the initial computer program at the first subset of the identified program locations, wherein the added object loading instructions, during execution of said revised computer program, load respective ones of said objects from persistent storage into said main memory when each said respective object is accessed for a first time; wherein said initial computer program is a bytecode program; said objects accessed and updated by said original instructions include objects in a first set of object classes, and said objects stored in said persistent storage by said object storing instructions include objects in a second set of object classes that is a subset of said first set of object classes; said original instructions include object data structure defining instructions for defining data structures associated with said objects in said first set of object classes; and said supplemental instructions further include: supplemental object definition instructions that revise said data structures associated with said second set of object classes so as to enable said objects in said second set of object classes to store both main memory object pointers and persistent storage object identifiers for objects referenced by said objects in said second set of object classes.
Claim 25
Dependent Claim 314 words
A computer system, comprising: memory, including a main memory for storing objects; said memory further storing an initial computer program, a revised computer program and a postprocessor procedure for modifying an initial computer program that includes original instructions for accessing objects stored in said main memory; said postprocessor procedure including instructions for: scanning said initial computer program to automatically identify object accessing instructions and corresponding program locations at which additional instructions are to be added representing a first subset of identified program locations; automatically, under control of said postprocessor procedure, revising said initial computer program to generate a revised computer program by adding supplemental instructions to said initial computer program, said supplemental instructions including: object loading instructions, added to the initial computer program at the first subset of the identified program locations, wherein the added object loading instructions, during execution of said revised computer program, load respective ones of said objects from persistent storage into said main memory when each said respective object is accessed for a first time; wherein said initial computer program is a bytecode program; said objects accessed and updated by said original instructions include objects in a first set of object classes, and said objects stored in said persistent storage by said object storing instructions include objects in a second set of object classes that is a subset of said first set of object classes; said original instructions include object data structure defining instructions for defining data structures associated with said objects in said first set of object classes; and said supplemental instructions further include: supplemental object definition instructions that revise said data structures associated with said second set of object classes so as to enable said objects in said second set of object classes to store both main memory object pointers and persistent storage object identifiers for objects referenced by said objects in said second set of object classes.
Claim 26
Dependent Claim 71 words
The computer system of claim 19, wherein objects loaded into said main memory by said object loading instructions include null object pointers for objects in persistent storage that are referenced by said objects loaded in said main memory; said postprocessor procedure revises said initial computer program so that said object loading instructions are invoked whenever a null object pointer in an object in said second set of object classes is accessed.
Claim 27
Dependent Claim 15 words
The computer system of claim 19 wherein the objects are rows in a database table.

References Cited (Backward Citations)

US5577244A Cited
US5325531A Cited
US5835701A Cited
US5568642A Cited
US5535392A Cited
US5493680A Cited
US5404525A Cited
US5359730A Cited
US5634123A Cited
US5590269A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-10-03 2004-04-03 2004-10-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-10-03 2008-04-03 2008-10-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-10-03 2012-04-03 2012-10-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag