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
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)
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 |