US5577246A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Database memory compaction and reclamation method
Assignee: Nokia of America Corp
•
Filing: 1995-02-22
•
Granted: 1996-11-19
•
Expires: 2015-02-22
Abstract
Abstract A method for maintaining the performance of the system while identifying and reclaiming unreferenced tuples. A set of status bits is associated with each tuple, which are used to indicate the current state of the tuple, and whether it is in a transient state while the garbage collector, according to this invention, is examining it, thus permitting the garbage collector to run without locking out other processing. Further, the garbage collector uses the status bits to audit linked lists used by a database manager against linkage failure. Finally, the garbage collector compresses data and removes redundant data found while traversing the tuple structure of the database.
Inventors
- 👤 Charles A. Priddy
- 👤 Eric D. Scott
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-30 23:22
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/0223; G06F12/023; G06F12/0253
Claims Analysis
Total Claims: 8
Claim 1
Independent Claim
208 words
A method for effecting recovery of database memory resources when necessary for use by a digital data processing system for performing real-time operations, said digital data processing system including a limited amount of memory, said memory having a plurality sequentially numbered memory pages, said database comprising a plurality of child tuples and one or more parent tuples, each of said parent tuples having at least one reference to one or more child tuples, said child tuples being stored in sequentially numbered memory locations on said memory pages and each child tuple having the capability of referencing another child tuple, said method comprising: copying child tuples from higher numbered memory locations to lower numbered memory locations by repetitively copying a child tuple from the highest numbered occupied memory location into the lowest unused memory location until the next lowest unused memory location has a higher number than the highest memory location in which a child tuple is located; resetting references to said copied child tuples in all tuples referencing said copied child tuples; marking all child tuples that are referenced from any of said tuples; collecting all unmarked child tuples, and collecting all copied child tuples from said higher numbered memory locations thereby creating unused higher numbered memory pages.
Claim 2
Independent Claim
208 words
A method for effecting recovery of database memory resources when necessary for use by a digital data processing system for performing real-time operations, said digital data processing system including a limited amount of memory, said memory having a plurality sequentially numbered memory pages, said database comprising a plurality of child tuples and one or more parent tuples, each of said parent tuples having at least one reference to one or more child tuples, said child tuples being stored in sequentially numbered memory locations on said memory pages and each child tuple having the capability of referencing another child tuple, said method comprising: copying child tuples from higher numbered memory locations to lower numbered memory locations by repetitively copying a child tuple from the highest numbered occupied memory location into the lowest unused memory location until the next lowest unused memory location has a higher number than the highest memory location in which a child tuple is located; resetting references to said copied child tuples in all tuples referencing said copied child tuples; marking all child tuples that are referenced from any of said tuples; collecting all unmarked child tuples, and collecting all copied child tuples from said higher numbered memory locations thereby creating unused higher numbered memory pages.
Claim 3
Dependent Claim
27 words
A method in accordance with claim 1 further including the step of deallocating said unused higher numbered memory pages after said step of collecting copied child tuples.
Claim 4
Dependent Claim
36 words
A method in accordance with claim 1 wherein said database also includes a free list of unallocated child tuples, and said step of marking said child tuples includes marking said unallocated tuples on said free list.
Claim 5
Independent Claim
245 words
A method for effecting recovery of database memory resources when necessary for use by a digital data processing system for performing real-time operations, said digital data processing system including a limited amount of memory, said memory having a plurality of sequentially numbered memory pages, said database comprising a plurality of child tuples and one or more parent tuples, said parent tuples having at least one reference each to one or more child tuples, said child tuples being stored in sequentially numbered memory locations on said memory pages, each of said child tuples having unique data and a link to another of said child tuples, selected ones of said child tuples being linked into lists, said data base further comprising an index list having a plurality of links to a plurality of linked lists of child tuples, said method comprising: selecting unused memory locations among said child tuples in lower numbered memory locations; compressing child tuples from higher numbered memory locations to lower numbered memory locations by copying said child tuples from higher numbered memory locations into said selected unused memory locations; resetting references of child tuples from said higher numbered memory locations to said lower numbered memory locations, said resetting including linking said lower numbered memory child tuples into the linked list of said higher numbered memory child tuple; marking all child tuples referenced from said parent tuples; collecting all unmarked child tuples; and collecting all compressed child tuples from said higher numbered memory locations.
Claim 6
Independent Claim
245 words
A method for effecting recovery of database memory resources when necessary for use by a digital data processing system for performing real-time operations, said digital data processing system including a limited amount of memory, said memory having a plurality of sequentially numbered memory pages, said database comprising a plurality of child tuples and one or more parent tuples, said parent tuples having at least one reference each to one or more child tuples, said child tuples being stored in sequentially numbered memory locations on said memory pages, each of said child tuples having unique data and a link to another of said child tuples, selected ones of said child tuples being linked into lists, said data base further comprising an index list having a plurality of links to a plurality of linked lists of child tuples, said method comprising: selecting unused memory locations among said child tuples in lower numbered memory locations; compressing child tuples from higher numbered memory locations to lower numbered memory locations by copying said child tuples from higher numbered memory locations into said selected unused memory locations; resetting references of child tuples from said higher numbered memory locations to said lower numbered memory locations, said resetting including linking said lower numbered memory child tuples into the linked list of said higher numbered memory child tuple; marking all child tuples referenced from said parent tuples; collecting all unmarked child tuples; and collecting all compressed child tuples from said higher numbered memory locations.
Claim 7
Dependent Claim
46 words
A method in accordance with claim 4 wherein said step of compressing comprises the substeps of: a. locating free tuples in lower numbered memory pages; and b. copying tuples from the highest numbered occupied memory location to said located free tuples in lower numbered memory pages.
Claim 8
Dependent Claim
39 words
A method in accordance with claim 5 further comprising: performing substeps a and b until one of said located free tuples has an address higher than one of said tuples to be copied from said higher numbered memory locations.
References Cited (Backward Citations)
US4660130A
Cited
US4775932A
Cited
US4853842A
Cited
US5025367A
Cited
US4797810A
Cited
US4989134A
Cited
US5136706A
Cited
US4807120A
Cited
US5088036A
Cited
US5321834A
Cited
US5261088A
Cited
US5293614A
Cited
US5392432A
Cited
US5485613A
Cited
US5218698A
Cited
US5404511A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1999-11-19 | 2000-05-20 | 2000-11-19 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2003-11-19 | 2004-05-20 | 2004-11-19 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2007-11-19 | 2008-05-20 | 2008-11-19 | $7700.00 | Window Closed / Lapsed |