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

Serially reusable execution memory

Assignee: Oracle International Corp
•
Filing: 1997-04-04
•
Granted: 1999-11-16
•
Expires: 2017-04-04
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Execution memory for use in processing a program unit for a database is allocated by inspecting an execution memory area pool for a previously allocated execution memory area. If a previously allocated execution memory area is found, then the previously allocated execution memory area is established as the execution memory area for executing the program unit. On the other hand, if a previously allocated execution memory area is not found, then a new execution memory area is allocated and configured for executing the program unit.

Inventors

  • 👤 Amit Jasuja
  • 👤 Mark Ramacher
  • 👤 Kannan Muthukkaruppan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 23:58
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/50; G06F9/5005; G06F9/5011; G06F9/5016; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952; Y10S707/99953; Y10S707/99956; Y10S707/99957

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 231 words
A method for allocating an execution memory area to execute a program unit, comprising the computer-implemented steps of: in response to receiving a command to execute said program unit, inspecting an execution memory area pool to find a previously allocated and configured execution memory area that is currently unused, wherein said previously allocated and configured execution memory area includes a plurality of memory chunks and pointers initialized to the memory chunks; wherein said execution memory area pool contains execution memory areas that are available to a plurality of users; if a previously allocated and configured execution memory area is found in said execution memory area pool, then establishing said previously allocated and configured execution memory area as said execution memory area to execute said program unit; if a previously allocated and configured execution memory area is not found in said execution memory area pool, then performing the steps of: allocating a new execution memory area by allocating a plurality of new memory chunks, configuring said new execution memory area by initializing pointers to the new memory chunks, and establishing said new execution memory area as said execution memory area to execute said program unit; executing said program unit using said execution memory area as configured; and if said execution memory area is not already in said execution memory pool, then adding said execution memory area to said execution memory area pool.
Claim 2
Independent Claim 231 words
A method for allocating an execution memory area to execute a program unit, comprising the computer-implemented steps of: in response to receiving a command to execute said program unit, inspecting an execution memory area pool to find a previously allocated and configured execution memory area that is currently unused, wherein said previously allocated and configured execution memory area includes a plurality of memory chunks and pointers initialized to the memory chunks; wherein said execution memory area pool contains execution memory areas that are available to a plurality of users; if a previously allocated and configured execution memory area is found in said execution memory area pool, then establishing said previously allocated and configured execution memory area as said execution memory area to execute said program unit; if a previously allocated and configured execution memory area is not found in said execution memory area pool, then performing the steps of: allocating a new execution memory area by allocating a plurality of new memory chunks, configuring said new execution memory area by initializing pointers to the new memory chunks, and establishing said new execution memory area as said execution memory area to execute said program unit; executing said program unit using said execution memory area as configured; and if said execution memory area is not already in said execution memory pool, then adding said execution memory area to said execution memory area pool.
Claim 3
Dependent Claim 43 words
The method of claim 1, further comprising the step of finding an execution memory area pool associated with said program unit from a plurality of execution memory area pools; wherein said execution memory pool contains said previously allocated and configured execution memory area.
Claim 4
Dependent Claim 75 words
The method of claim 2, wherein the step of finding an execution memory area pool associated with said program unit from a plurality of execution memory area pools includes the steps of: storing a reference to said execution memory area pool associated with said program unit in a hash table; hashing a string describing said program unit into a hash key; and looking up said reference in said hash table with said hash table key.
Claim 5
Dependent Claim 53 words
The method of claim 1, further comprising the step of deallocating an old execution memory area in said execution memory area pool, wherein said old execution memory area is a least recently used, within a prescribed amount of time, execution memory area of all execution memory areas within said execution memory area pool.
Claim 6
Dependent Claim 170 words
The method of claim 1, wherein: said execution memory area pool is a free list of previously allocated and configured execution memory areas; the step of inspecting an execution memory area pool to find a previously allocated and configured execution memory area includes the step of checking for a first previously allocated and configured execution memory area of said free list; the step of establishing said previously allocated and configured execution memory area as said execution memory area to execute said program unit includes the step of moving said first pooled execution memory area from said free list to an in-use list of execution memory areas; the step of establishing said new execution memory area as said execution memory area to execute said program unit includes the step of adding said new execution memory area to said in-use list; and the step of adding said work area to said execution memory area pool includes the step of moving said execution memory area from said in-use list to said free list.
Claim 7
Dependent Claim 144 words
The method of claim 5, further comprising the steps of: obtaining a mutually exclusive lock before inspecting the execution memory area pool; releasing the mutually exclusive lock after establishing said previously allocated and configured execution memory area as said execution memory area to execute said program unit; before allocating the new execution memory area, performing the steps of: creating an empty slot in said in-use list and releasing the mutually exclusive lock after creating the empty slot; obtaining the mutually exclusive lock before adding said execution memory area to said execution memory area pool; releasing the mutually exclusive lock after adding said execution memory area to said execution memory area pool; and wherein the step of adding said new execution memory area to said in-use list includes the step of adding said new execution memory area to the empty slot of said in-use list.
Claim 8
Dependent Claim 29 words
The method of claim 1, wherein the step of allocating a new execution memory area includes the step of allocating a new execution memory area from a shared memory.
Claim 9
Dependent Claim 29 words
The method of claim 1, wherein the step of executing said program unit using said execution memory area includes the step of executing a query using a work area.
Claim 10
Dependent Claim 29 words
The method of claim 1, wherein the step of executing said program unit using said execution memory area includes the step of executing a package using a package frame.
Claim 11
Dependent Claim 249 words
A computer readable medium having stored thereon sequences of instructions for allocating an execution memory area to execute a program unit, said sequences of instructions including instructions for performing the steps of: in response to receiving a command to execute said program unit, inspecting an execution memory area pool to find a previously allocated and configured execution memory area that is currently unused, wherein said previously allocated and configured execution memory area includes a plurality of memory chunks and pointers initialized to the memory chunks; wherein said execution memory area pool contains execution memory areas that are available to a plurality of users in a database system; if a previously allocated and configured execution memory area is found in said execution memory area pool, then establishing said previously allocated and configured execution memory area as said execution memory area to execute said program unit; if a previously allocated and configured execution memory area is not found in said execution memory area pool, then performing the steps of: allocating a new execution memory area by allocating a plurality of new memory chunks, configuring said new execution memory area by initializing pointers to the memory chunks, and establishing said new execution memory area as said execution memory area to execute said program unit; executing said program unit using said execution memory area as configured; and if said execution memory area is not already in said execution memory area pool then adding said execution memory area to said execution memory area pool.
Claim 12
Dependent Claim 249 words
A computer readable medium having stored thereon sequences of instructions for allocating an execution memory area to execute a program unit, said sequences of instructions including instructions for performing the steps of: in response to receiving a command to execute said program unit, inspecting an execution memory area pool to find a previously allocated and configured execution memory area that is currently unused, wherein said previously allocated and configured execution memory area includes a plurality of memory chunks and pointers initialized to the memory chunks; wherein said execution memory area pool contains execution memory areas that are available to a plurality of users in a database system; if a previously allocated and configured execution memory area is found in said execution memory area pool, then establishing said previously allocated and configured execution memory area as said execution memory area to execute said program unit; if a previously allocated and configured execution memory area is not found in said execution memory area pool, then performing the steps of: allocating a new execution memory area by allocating a plurality of new memory chunks, configuring said new execution memory area by initializing pointers to the memory chunks, and establishing said new execution memory area as said execution memory area to execute said program unit; executing said program unit using said execution memory area as configured; and if said execution memory area is not already in said execution memory area pool then adding said execution memory area to said execution memory area pool.
Claim 13
Dependent Claim 53 words
The computer readable medium of claim 10, wherein said sequence of instructions further includes instructions for performing the step of finding an execution memory area pool associated with said program unit from a plurality of execution memory area pools; wherein said execution memory pool contains said previously allocated and configured execution memory area.
Claim 14
Dependent Claim 76 words
The computer readable medium of claim 11, wherein the step of finding an execution memory area pool associated with said program unit from a plurality of execution memory area pools includes the steps of: storing a reference to said execution memory area pool associated with said program unit in a hash table; hashing a string describing said program unit into a hash key; and looking up said reference in said hash table with said hash key.
Claim 15
Dependent Claim 58 words
The computer readable medium of claim 10, further comprising instructions for performing the step of deallocating an old execution memory area in said execution memory area pool, wherein said old execution memory area is a least recently used, within a prescribed amount of time, execution memory area of all execution memory areas within said execution memory area pool.
Claim 16
Dependent Claim 173 words
The computer readable medium of claim 10, wherein: said execution memory area pool is a free list of previously allocated and configured execution memory areas; the step of inspecting an execution memory area pool to find a previously allocated and configured execution memory area includes the step of checking for a first previously allocated and configured execution memory area of said free list; the step of establishing said previously allocated and configured execution memory area as said execution memory area to execute said program unit includes the step of moving said first pooled execution memory area from said free list to an in-use list of execution memory areas; the step of establishing said new execution memory area as said execution memory area to execute said program unit includes the step of adding said new execution memory area to said in-use list; and the step of adding said execution memory area to said execution memory area pool includes the step of moving said execution memory area from said in-use list to said free list.
Claim 17
Dependent Claim 149 words
The computer readable medium of claim 14, further comprising instructions for performing the steps of: obtaining a mutually exclusive lock before inspecting the execution memory area pool; releasing the mutually exclusive lock after establishing said previously allocated and configured execution memory area as said execution memory area to execute said program unit; before allocating the new execution memory area, performing the steps of: creating an empty slot in said in-use list and releasing the mutually exclusive lock after creating the empty slot; obtaining the mutually exclusive lock before adding said execution memory area to said execution memory area pool; releasing the mutually exclusive lock after adding said execution memory area to said execution memory area pool; and wherein the step of adding said new execution memory area to said in-use list includes the step of adding said new execution memory area to the empty slot of said in-use list.
Claim 18
Dependent Claim 31 words
The computer readable medium of claim 10, wherein the step of allocating a new execution memory area includes the step of allocating a new execution memory area from a shared memory.
Claim 19
Dependent Claim 31 words
The computer readable medium of claim 10, wherein the step of executing said program unit using said execution memory area includes the step of executing a query using a work area.
Claim 20
Dependent Claim 31 words
The computer readable medium of claim 10, wherein the step of executing said program unit using said execution memory area includes the step of executing a package using a package frame.
Claim 21
Independent Claim 118 words
A method for executing a database program unit, comprising the computer-implemented steps of: establishing, as an execution memory area for a first database program unit from a first user, a previously allocated and configured execution memory area that was previously used to execute a second database program unit from a second user other than the first user, wherein said previously allocated and configured execution memory area has not been deallocated since being used to execute said second database program unit from said second user; and executing said first database program unit using said execution memory area; wherein said previously allocated and configured execution memory area includes a plurality of memory chunks and pointers initialized to the memory chunks.
Claim 22
Independent Claim 118 words
A method for executing a database program unit, comprising the computer-implemented steps of: establishing, as an execution memory area for a first database program unit from a first user, a previously allocated and configured execution memory area that was previously used to execute a second database program unit from a second user other than the first user, wherein said previously allocated and configured execution memory area has not been deallocated since being used to execute said second database program unit from said second user; and executing said first database program unit using said execution memory area; wherein said previously allocated and configured execution memory area includes a plurality of memory chunks and pointers initialized to the memory chunks.
Claim 23
Dependent Claim 44 words
The method of claim 19 further comprising the step of inspecting an execution memory area pool to find said execution memory area, wherein said execution memory area pool contains execution memory areas that are available to a plurality of users of said database system.
Claim 24
Dependent Claim 21 words
The method of claim 20 further comprising the step of adding said execution memory area to said execution memory area pool.

References Cited (Backward Citations)

US5561786A Cited
US5577246A Cited
US5561785A Cited
US5623654A Cited
US5835914A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-11-15 2003-05-17 2003-11-16 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-11-15 2007-05-17 2007-11-16 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-11-15 2011-05-17 2011-11-16 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag