Patent JPS4940432A successfully refreshed from Google Patents.
Patent US6199141B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6199141B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system

Assignee: Progress Software Corp
•
Filing: 1995-05-31
•
Granted: 2001-03-06
•
Expires: 2015-05-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An apparatus and method are provided for virtual memory mapping and transaction management in an object-oriented database system having permanent storage for storing data in at least one database, at least one cache memory for temporarily storing data, and a processing unit which runs application programs which request data using virtual addresses. The system performs data transfers in response to memory faults resulting from requested data not being available at specified virtual addressed and performs mapping of data in cache memory. The data in the database may include pointers containing persistent addresses, which pointers are relocated between persistent addresses and virtual addresses. When a data request is made, either for read or write, from a given client computer in a system, other client computers in the system are queried to determine if the requested data is cached and/or locked in a manner inconsistent with the requested use, and the inconsistent caching is downgraded or the transfer delayed until such downgrading can be performed.

Inventors

  • 👤 Daniel L. Weinreb
  • 👤 Sam J. Haradhvala

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 02:52
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1072; G06F12/0802; G06F12/0806; G06F12/0813; G06F12/0815; G06F9/00; G06F9/06; G06F9/44; G06F9/448; G06F9/4488; G06F9/4493; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99938

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 636 words
An apparatus for virtual meniory mapping and tranation management for a database system, comprising: at least one poinannt storage device for staring data in at least one database, wherein said at least one datase is divided into segments, each containing one or more pages; a plurality of computers, at least one running an application program involving a database transaction, and each having a cache memory for storing data, and a processing unit for requesting data from said at least one database, wherein each permanent storage device is associated with one of said plurality of computers; each computer having an ownership table having an entry for each page of the permanent storage device encached at one of the plurality of computers, each entry indicating which of said plurality of computers have the page encached and whether the page is encached for read and write access; the ownership table for determining if the page is encached for write; means, responsive to a request for data from the database from means for requesting of a first computer, for detecting by a server if requested data is in cache memory of a second computer and has a cached state indicating that access to the data by the first computer is not permitted; a server having means, responsive to said means for detecting, for providing instructions to said second computer to change the cached state of the data to a state tat allows access of the data by the first computer, wherein said instructions include issuing a callback message that is separate from said request for data, means for transferring said requested data as a page of data to the first computer after the second computer changes the cached state of the data, means, responsive to a transfer of a page in response to a read request for the page, for encaching the page for read and for locking the page for read at a third computer; means, responsive to a transfer of a page in response to a write request for the page, for encaching the page for write and for locking the page for write at the third computer; means, responsive to a request for data from a database for read access from the means for requesting of a first computer, for detecting if the requested data is in the cache memory of an other computer for write access; means, responsive to a detection by the means for detecting that the requested data is in the cache memory of the other computer for write access, for instructing the other computer to downgrade the encached state of the data to read access; means for querying one of the plurality of computers having the page encached for write to determine if the page is locked for write; means, responsive to a response from a queried computer that the page is not locked for write, for downgrading the entry for the page in the ownership table from indicating encached for write to indicate encached for read, and for permitting the means for transfering said requested data to transfer the page to the cache memory of the requesting computer, wherein each queried computer has a cache directory having an entry for each page in the corresponding cache memory, which entry indicates a cached state and a locked state of the page; means, responsive to a response from the queried computer that the page is locked for write, for deferring further action until the transaction being run at the queried computer commits, said means for downgrading and for permitting being operative when the queried computer transaction commits; and means, responsive to a query as to whether the page is locked for write, for looking up the page in the cache directory of the queried computer to determine if the page is locked for write.
Claim 2
Independent Claim 636 words
An apparatus for virtual meniory mapping and tranation management for a database system, comprising: at least one poinannt storage device for staring data in at least one database, wherein said at least one datase is divided into segments, each containing one or more pages; a plurality of computers, at least one running an application program involving a database transaction, and each having a cache memory for storing data, and a processing unit for requesting data from said at least one database, wherein each permanent storage device is associated with one of said plurality of computers; each computer having an ownership table having an entry for each page of the permanent storage device encached at one of the plurality of computers, each entry indicating which of said plurality of computers have the page encached and whether the page is encached for read and write access; the ownership table for determining if the page is encached for write; means, responsive to a request for data from the database from means for requesting of a first computer, for detecting by a server if requested data is in cache memory of a second computer and has a cached state indicating that access to the data by the first computer is not permitted; a server having means, responsive to said means for detecting, for providing instructions to said second computer to change the cached state of the data to a state tat allows access of the data by the first computer, wherein said instructions include issuing a callback message that is separate from said request for data, means for transferring said requested data as a page of data to the first computer after the second computer changes the cached state of the data, means, responsive to a transfer of a page in response to a read request for the page, for encaching the page for read and for locking the page for read at a third computer; means, responsive to a transfer of a page in response to a write request for the page, for encaching the page for write and for locking the page for write at the third computer; means, responsive to a request for data from a database for read access from the means for requesting of a first computer, for detecting if the requested data is in the cache memory of an other computer for write access; means, responsive to a detection by the means for detecting that the requested data is in the cache memory of the other computer for write access, for instructing the other computer to downgrade the encached state of the data to read access; means for querying one of the plurality of computers having the page encached for write to determine if the page is locked for write; means, responsive to a response from a queried computer that the page is not locked for write, for downgrading the entry for the page in the ownership table from indicating encached for write to indicate encached for read, and for permitting the means for transfering said requested data to transfer the page to the cache memory of the requesting computer, wherein each queried computer has a cache directory having an entry for each page in the corresponding cache memory, which entry indicates a cached state and a locked state of the page; means, responsive to a response from the queried computer that the page is locked for write, for deferring further action until the transaction being run at the queried computer commits, said means for downgrading and for permitting being operative when the queried computer transaction commits; and means, responsive to a query as to whether the page is locked for write, for looking up the page in the cache directory of the queried computer to determine if the page is locked for write.
Claim 3
Dependent Claim 67 words
An apparatus as set forth in claim 1 , wherein the queried computer includes means, responsive to a determination that the page is not locked for write, for downgrading the cached state of the entry for the page in the cache directory from indicating encached for write to indicate encached for read, and for replying to a querying computer that the page is not locked for write.
Claim 4
Dependent Claim 66 words
An apparatus as set forth in claim 1 , wherein the queried computer includes means, responsive to a detention that the page is locked for write, for masking the entry for the page in the cache directory to be downgraded when the transaction commits, said means for downgrading the cache state and for replying being operative when the transaction being run on the queried computer commits.
Claim 5
Independent Claim 641 words
An apparatus for virtual memory mapping and transaction management for a database system, comprising: at least one permanent storage device for storing data in at least one database, wherein said at least one database is divided into segments, each containing one or more pages; a plurality of computers, at least one running an application program involving a database transaction, each having a cache memory for storing data, and a processing unit for requesting data from said at least one database, wherein each of the at least one permanent storage device is associated with at least one of said plurality of computers; each computer having an ownership table having an entry for each page of the associated permanent storage device computer which is encached at one of said plurality of computers, each entry for a page indicating which of said plurality of computers have the page encached and whether the page is encached for one of read and write, the ownership table to determine if the page is encached; means, responsive to a request for data from the at least one database from means for requesting of a first computer, for detecting by server computer if requested data is in cache memory of a second computer and has a cache state indicating that access to the data by the first computer is not permitted; server means, responsive to said means for detecting, for providing instructions to said second computer to change the cached state of the data to a state that allows access of the data by the first computer, wherein said instructions include issuing a callback message that is separate from said request for data; means for transferring said requested data as a page of data to the first computer after the second computer changes the cached state of the data; means, responsive to a transfer of a page in response to a read request for the page, for encaching the page for read and for locking the page for read at a third computer; means, responsive to a transfer of a page in response to a write request for the page, for encaching the page for write and for locking the page for write at the third computer; means, responsive to a request for data from a database for write access from the means for requesting of a first computer, for detecting if the requested data is in the cache memory of an other computer; means, responsive to a detection by the means for detecting that the requested data is in the cache memory of the other computer, for instructing the other computer to remove the data from its cache memory; means for querying each computer having the page encached to determine if the page is also locked; means, responsive to a reply from all queried computers that the page is not locked, for removing all entries for the page from the ownership table, and for making an entry for the requesting computer in the ownership table, and for permitting the means for transferring said requested data to transfer the page to the cache, memory of the requesting computer, wherein each of said queried computers has a cache directory having an entry for each page in the corresponding cache memory, which entry indicates a cached state and a locked state of the page; means, responsive to a response from at least one queried computer that the page is locked, for deferring further action until the transactions being run on all said at least one queried computers commit, said means for removing all entries, and for making an entry and for permitting being operative when the transactions being run on all queried computers commit; and means, responsive to a locked query, for looking up the page in a cache directory of the queried computer to determine if the page is locked.
Claim 6
Independent Claim 641 words
An apparatus for virtual memory mapping and transaction management for a database system, comprising: at least one permanent storage device for storing data in at least one database, wherein said at least one database is divided into segments, each containing one or more pages; a plurality of computers, at least one running an application program involving a database transaction, each having a cache memory for storing data, and a processing unit for requesting data from said at least one database, wherein each of the at least one permanent storage device is associated with at least one of said plurality of computers; each computer having an ownership table having an entry for each page of the associated permanent storage device computer which is encached at one of said plurality of computers, each entry for a page indicating which of said plurality of computers have the page encached and whether the page is encached for one of read and write, the ownership table to determine if the page is encached; means, responsive to a request for data from the at least one database from means for requesting of a first computer, for detecting by server computer if requested data is in cache memory of a second computer and has a cache state indicating that access to the data by the first computer is not permitted; server means, responsive to said means for detecting, for providing instructions to said second computer to change the cached state of the data to a state that allows access of the data by the first computer, wherein said instructions include issuing a callback message that is separate from said request for data; means for transferring said requested data as a page of data to the first computer after the second computer changes the cached state of the data; means, responsive to a transfer of a page in response to a read request for the page, for encaching the page for read and for locking the page for read at a third computer; means, responsive to a transfer of a page in response to a write request for the page, for encaching the page for write and for locking the page for write at the third computer; means, responsive to a request for data from a database for write access from the means for requesting of a first computer, for detecting if the requested data is in the cache memory of an other computer; means, responsive to a detection by the means for detecting that the requested data is in the cache memory of the other computer, for instructing the other computer to remove the data from its cache memory; means for querying each computer having the page encached to determine if the page is also locked; means, responsive to a reply from all queried computers that the page is not locked, for removing all entries for the page from the ownership table, and for making an entry for the requesting computer in the ownership table, and for permitting the means for transferring said requested data to transfer the page to the cache, memory of the requesting computer, wherein each of said queried computers has a cache directory having an entry for each page in the corresponding cache memory, which entry indicates a cached state and a locked state of the page; means, responsive to a response from at least one queried computer that the page is locked, for deferring further action until the transactions being run on all said at least one queried computers commit, said means for removing all entries, and for making an entry and for permitting being operative when the transactions being run on all queried computers commit; and means, responsive to a locked query, for looking up the page in a cache directory of the queried computer to determine if the page is locked.
Claim 7
Dependent Claim 60 words
An apparatus as set forth in claim 4 , wherein the queried computer includes means, responsive to a determination that the page is unlocked for removing the page from the cache memory of the queried computer, and for removing the entry for the page from the cache directory, and for replying to a querying computer that the page is unlocked.
Claim 8
Dependent Claim 77 words
An apparatus as claimed in claim 5 , wherein the queried computer includes means, responsive to a determination that the page is locked, for marking the entry for the page in the cache directory to be evicted when the transaction commits, and for replying to the querying computer that the page is locked, said means for removing the page, removing the entry, and for replying being operative when the transaction being run on the queried computer commits.
Claim 9
Independent Claim 579 words
A method for transaction management for computers of a computer system, comprising: detecting, by a server computer in response to a request for data by a first one of the computers, if the data is in cache memory of a second one of the computers and has a cached state indicating that access to the data by the first computer is not permitted, wherein a request for data may be one of a read request and a write request; instructing by said server computer said second computer to change the cached state of the data in response to said detecting step indicting that access to the data by the first computer is not permitted, wherein instructing said second computer includes issuing a callback message to said second computer that is separate from said request for data; transferring said requested data to the first computer after the second computer changes the cached state of the data, wherein a database is divided into segments, each containing at least one page; and the step of transferring includes transferring the page containing requested data; encaching the page for read, in response to a transfer of the page in response to a read request for the page, and locking the page for read at the first computer; encaching the page for write, in response to a transfer of the page in response to a write request for the page, and locking the page for write at the fist computer; providing at least one permanent storage device, each permanent storage device being associated with one of said computers, wherein each computer associated with said at least one permanent storage device has an ownership table having an entry for each page of the permanent storage device which is ancached at one of said computers, each entry for a page indicating which of said computers have the page encached and whether the page is encached for one of read and write access; detecting, in response to a request for data from a database for read access, if the requested data is in the cache memory of the second computer for write access, wherein detecting includes determining if the page is encached for write utilizing the ownership table; instructing the second computer, in response to a detection that the requested data is in the cache memory of the second computer, to downgrade the cached state of the data to read access; querying a computer having the page encached for write to determine if the page is locked for write; downgrading the entry for the page in the ownership table, in response to a response from the queried computer that the page is not locked for write, from indicating encached for write to indicate encached for read; providing the computer system with an application program involving at least one transaction; deferring further action, in response to a response from the queried computer that the page is looked for write, until the transaction being run at the queried computer commits, downgrading and transferring being performed after the transaction performed by the queried computer commits, wherein each queried computer has a cache directory having an entry for each page in the corresponding cache memory, which entry indicates a cached state and a locked state of the page; and looking up the page in the cache directory of the queried computer, in response to a query whether the page is locked for write, to determine if the page is locked for write.
Claim 10
Independent Claim 579 words
A method for transaction management for computers of a computer system, comprising: detecting, by a server computer in response to a request for data by a first one of the computers, if the data is in cache memory of a second one of the computers and has a cached state indicating that access to the data by the first computer is not permitted, wherein a request for data may be one of a read request and a write request; instructing by said server computer said second computer to change the cached state of the data in response to said detecting step indicting that access to the data by the first computer is not permitted, wherein instructing said second computer includes issuing a callback message to said second computer that is separate from said request for data; transferring said requested data to the first computer after the second computer changes the cached state of the data, wherein a database is divided into segments, each containing at least one page; and the step of transferring includes transferring the page containing requested data; encaching the page for read, in response to a transfer of the page in response to a read request for the page, and locking the page for read at the first computer; encaching the page for write, in response to a transfer of the page in response to a write request for the page, and locking the page for write at the fist computer; providing at least one permanent storage device, each permanent storage device being associated with one of said computers, wherein each computer associated with said at least one permanent storage device has an ownership table having an entry for each page of the permanent storage device which is ancached at one of said computers, each entry for a page indicating which of said computers have the page encached and whether the page is encached for one of read and write access; detecting, in response to a request for data from a database for read access, if the requested data is in the cache memory of the second computer for write access, wherein detecting includes determining if the page is encached for write utilizing the ownership table; instructing the second computer, in response to a detection that the requested data is in the cache memory of the second computer, to downgrade the cached state of the data to read access; querying a computer having the page encached for write to determine if the page is locked for write; downgrading the entry for the page in the ownership table, in response to a response from the queried computer that the page is not locked for write, from indicating encached for write to indicate encached for read; providing the computer system with an application program involving at least one transaction; deferring further action, in response to a response from the queried computer that the page is looked for write, until the transaction being run at the queried computer commits, downgrading and transferring being performed after the transaction performed by the queried computer commits, wherein each queried computer has a cache directory having an entry for each page in the corresponding cache memory, which entry indicates a cached state and a locked state of the page; and looking up the page in the cache directory of the queried computer, in response to a query whether the page is locked for write, to determine if the page is locked for write.
Claim 11
Dependent Claim 57 words
A method as set forth in claim 7 further comprising: downgrading the cached state of the entry for the page in the cache directory of the queried computer from indicating encached for write to indicate encached for road, and replying to the querying computer in response to a determination that the page is not locked for write.
Claim 12
Dependent Claim 55 words
A method as set forth in claim 8 , further comprising: marking the entry for the page in the cache directory to be downgraded when the transaction commits in response to a determination that the page is locked for write, downgrading and replying being performed when the transaction being run on the queried computer commits.
Claim 13
Independent Claim 577 words
A method for transaction management for computers of a computer system, comprising: detecting, by a server computer in response to a request for data by a first one of the computers, if the data is in cache memory of a second one of the computers and has a cached state indicating that access to the data by the first computer is not permitted, wherein a request for data may be one of a read request and rate request; instructing by said server computer said second computer to change the cached state of the data in response to said detecting step indicating access to the data by the first computer is not permitted, wherein instructing said second computer includes issuing a call back message to said second computer that is separate from said request for data; transferring said requested data to the first computer after the second computer changes the cached state of the data, wherein a database is divided into segments, each containing at least one page; and the step of transferring includes transferring the page containing requested data; encaching the page for read, in response to a transfer of the page in response to a read request for the page, and locking the page for read at the first computer; encaching the page for write, in response to a transfer of the page in response to a write request for the page, and locking the page for write at the first computer; providing at least one permanent storage device, each permanent storage device being associated with a computer, wherein each computer associated with a permanent storage device has an ownership table having an entry for each page of the permanent storage device which is encached at one of said computers, each entry for a page indicating which of said computers has the page encached and whether the page is encached for one of read and write access; detecting, in response to a request for data from a database for write access by the first computer, if the requested data is in the cache memory of the second computer, wherein the step of detecting includes determining if the page is encached utilizing the ownership table; instructing the second computer, in response to a detection that the requested data is in the cache memory of the second computer, to remove the data from the cache memory of the second computer; querying each computer having a page encached to determine if the page is also locked; removing all entries for the page from the ownership table in response to a reply from all queried computers that the page is not locked; making an entry for the computer, which is requesting data, in the ownership table; providing the computer system with an application program involving at least one transaction; deferring further action, in response to a response from at least one queried computer that the page is locked, until the transactions being run on all said at least one queried computers commit, wherein removing all entries, making an entry and transferring are performed when all transactions performed by the queried computer commit, wherein each queried computer has a cache directory having an entry for each page in the corresponding cache memory, which entry indicates a cached state and a locked state of the page; and looking up a page in the cache directory of the queried computer in response to a locked query to determine if the page is locked.
Claim 14
Independent Claim 577 words
A method for transaction management for computers of a computer system, comprising: detecting, by a server computer in response to a request for data by a first one of the computers, if the data is in cache memory of a second one of the computers and has a cached state indicating that access to the data by the first computer is not permitted, wherein a request for data may be one of a read request and rate request; instructing by said server computer said second computer to change the cached state of the data in response to said detecting step indicating access to the data by the first computer is not permitted, wherein instructing said second computer includes issuing a call back message to said second computer that is separate from said request for data; transferring said requested data to the first computer after the second computer changes the cached state of the data, wherein a database is divided into segments, each containing at least one page; and the step of transferring includes transferring the page containing requested data; encaching the page for read, in response to a transfer of the page in response to a read request for the page, and locking the page for read at the first computer; encaching the page for write, in response to a transfer of the page in response to a write request for the page, and locking the page for write at the first computer; providing at least one permanent storage device, each permanent storage device being associated with a computer, wherein each computer associated with a permanent storage device has an ownership table having an entry for each page of the permanent storage device which is encached at one of said computers, each entry for a page indicating which of said computers has the page encached and whether the page is encached for one of read and write access; detecting, in response to a request for data from a database for write access by the first computer, if the requested data is in the cache memory of the second computer, wherein the step of detecting includes determining if the page is encached utilizing the ownership table; instructing the second computer, in response to a detection that the requested data is in the cache memory of the second computer, to remove the data from the cache memory of the second computer; querying each computer having a page encached to determine if the page is also locked; removing all entries for the page from the ownership table in response to a reply from all queried computers that the page is not locked; making an entry for the computer, which is requesting data, in the ownership table; providing the computer system with an application program involving at least one transaction; deferring further action, in response to a response from at least one queried computer that the page is locked, until the transactions being run on all said at least one queried computers commit, wherein removing all entries, making an entry and transferring are performed when all transactions performed by the queried computer commit, wherein each queried computer has a cache directory having an entry for each page in the corresponding cache memory, which entry indicates a cached state and a locked state of the page; and looking up a page in the cache directory of the queried computer in response to a locked query to determine if the page is locked.
Claim 15
Dependent Claim 48 words
A method as set forth in claim 10 , further comprising: removing the entry for a page from the cache memory in response to a determination that the page is not locked at the queried computer; and replying to the querying computer that the page is not locked.
Claim 16
Dependent Claim 71 words
A method as set forth in claim 11 , further comprising: marking the entry for the page in the cache directory of the queried computer to be evicted when the transaction commits in response to a determination that the page is looked, and replying to the querying computer that the page is locked, wherein removing the entry, and replying are performed when the transaction is run after the queried computer commits.
Claim 17
Independent Claim 624 words
An apparatus for transaction management for a computer system, comprising: a permanent storage device for storing data, wherein the computer system associates at least one computer with the permanent storage device; a plurality of computers each having a processing unit and a cache memory for storing data, the processing unit including a data requesting device that requests data from the permanent storage device, wherein a request for data may be one of a read request and a write request; and said data is organized in a database divided into segments, each segment containing one or more pages; a detection device included in a server computer having an input for receiving a request for data from a first computer, and an output for indicating whether the data is in the cache memory of a second computer and has a cached state indicating that access to the data by the first computer is not permitted; an instruction device included in the server computer, responsive to said detection device, and having an output for instructing said second computer to change the cached state of the data in response to said detection device indicating that access to the data by the first computer is not permitted, wherein said instruction device issues a callback message that is separate from said request for data; and a data transfer mechanism that transfers said data to the first computer after the second computer changes the cached state of the data, wherein said data transfer mechanism transfers a page containing the requested data; a read device having an input for receiving a transfer of a page in response to a read request for the page, that encaches the page for read and that locks the page for read at a third computer; and a write device having an input for receiving a transfer of a page in response to a write request for the page, that encaches the page for write and that locks the page for write at the third computer; a detection device having an input for receiving a request for data from a database for read access from the requesting device of the first computer, and an output for indicating whether the requested data is in the cache memory of the second computer for write access; an instruction device having an input for receiving a detection by the detection device that the requested data is in the cache memory of the second computer for write access, and an output for instructing the second computer to downgrade the encached state of the data to read access; a data transfer mechanism that transfers the requested data to the first computer; a querying device having an output for querying one of the plurality of computers having the page encached for write to determine if the page is locked for write; a downgrading and unlocking device having an input for receiving a response from a queried computer that the page is not locked for write, and a first output that downgrades the entry for the page in the ownership table from indicating encached for write to indicate encached for read, and a second output coupled to the data transferring device that permits the data transfer mechanism to transfer the page to the cache memory of the requesting computer, wherein each queried computer has a cache directory having an entry for each page in the corresponding cache memory, which entry indicates a cached state and a locked state of the page; and a lookup table mechanism having an input for receiving a query as to whether the page is locked for write, that looks up the page in the cache directory of the queried computer to determine if the page is locked for write .
Claim 18
Independent Claim 624 words
An apparatus for transaction management for a computer system, comprising: a permanent storage device for storing data, wherein the computer system associates at least one computer with the permanent storage device; a plurality of computers each having a processing unit and a cache memory for storing data, the processing unit including a data requesting device that requests data from the permanent storage device, wherein a request for data may be one of a read request and a write request; and said data is organized in a database divided into segments, each segment containing one or more pages; a detection device included in a server computer having an input for receiving a request for data from a first computer, and an output for indicating whether the data is in the cache memory of a second computer and has a cached state indicating that access to the data by the first computer is not permitted; an instruction device included in the server computer, responsive to said detection device, and having an output for instructing said second computer to change the cached state of the data in response to said detection device indicating that access to the data by the first computer is not permitted, wherein said instruction device issues a callback message that is separate from said request for data; and a data transfer mechanism that transfers said data to the first computer after the second computer changes the cached state of the data, wherein said data transfer mechanism transfers a page containing the requested data; a read device having an input for receiving a transfer of a page in response to a read request for the page, that encaches the page for read and that locks the page for read at a third computer; and a write device having an input for receiving a transfer of a page in response to a write request for the page, that encaches the page for write and that locks the page for write at the third computer; a detection device having an input for receiving a request for data from a database for read access from the requesting device of the first computer, and an output for indicating whether the requested data is in the cache memory of the second computer for write access; an instruction device having an input for receiving a detection by the detection device that the requested data is in the cache memory of the second computer for write access, and an output for instructing the second computer to downgrade the encached state of the data to read access; a data transfer mechanism that transfers the requested data to the first computer; a querying device having an output for querying one of the plurality of computers having the page encached for write to determine if the page is locked for write; a downgrading and unlocking device having an input for receiving a response from a queried computer that the page is not locked for write, and a first output that downgrades the entry for the page in the ownership table from indicating encached for write to indicate encached for read, and a second output coupled to the data transferring device that permits the data transfer mechanism to transfer the page to the cache memory of the requesting computer, wherein each queried computer has a cache directory having an entry for each page in the corresponding cache memory, which entry indicates a cached state and a locked state of the page; and a lookup table mechanism having an input for receiving a query as to whether the page is locked for write, that looks up the page in the cache directory of the queried computer to determine if the page is locked for write .
Claim 19
Dependent Claim 68 words
An apparatus as set forth in claim 13 , wherein the queried computer includes a marking device having an input for receiving a determination that the page is locked for write, an output for marking the entry for the page in the cache directory to be downgraded when the transaction commits, said downgrading and replying device being operative when the transaction being run on the queried computer commits.
Claim 20
Independent Claim 604 words
An apparatus for transaction management for a computer system, comprising: a permanent storage device for storing data, wherein one of the computers is associate with said at least one permanent storage device; and each computer associated with said permanent storage device has an ownership table having an entry for each page of the permanent storage device which is encached at a computer, each entry for a page indicating which computers have the page encached and whether the page is encached for one of read and write; a plurality of computers each having a processing unit and a cache memory for storing data, the processing unit including a data requesting device that requests data from the permanent storage device, wherein the computer system has an application program involving at least one transaction; a detection device included in a server computer having an input for receiving a request for data from a first computer, and an output for indicating whether the data is in the cache memory of a second computer and has a cache state indicating that access to the data by the first computer is not permitted, wherein the detection device utilizes the ownership table to determine if the page is encached; an instruction device included in the server computer, responsive to said detection device, and having an output for instructing said second computer to change the cached state of the data in response to said detection device indicating that access to the data by the first computer is not permitted, wherein said instruction device issues a call back message that is separate from said request for data; a data transfer mechanism that transfers said data to the first computer after the second computer changes the cached state of the data; a detection device having an input for receiving a request for data from a database for write access from the requesting device of the first computer, and an output for indicating whether the requested data is in the cache memory of the second computer; an instruction device having an input coupled to the output of the detection device for receiving a detection by the detecting device that the requested data is in the cache memory of the second computer, and an output for instructing the second computer to remove the data from its cache memory; and a data transfer mechanism that transfers the requested data to the first computer; a querying device having an output for querying each computer having the page encached to determine if the page is also locked; a mechanism having an input for receiving a reply from all queried computers that the page is not locked, a first output for removing all entries for the page from the ownership table, and a second output coupled to the data transferring device for permitting the data transferring device to transfer the page to the cache memory of the requesting computer, a deferral device having an input that receives a response from at least one queried computer that the page is looked, that defers further action until the transactions being run on all said at least one queried computer commits, said mechanism being operative when the transactions being run on all queried computers commit, wherein each queried computer has a cache directory having an entry for each page in the corresponding cache memory, which entry indicates a cached state and a locked state of the page; and a lookup table device having an input for receiving a locked query, and an output for looking up the page in the cache directory of a queried computer to determine if the page is locked.
Claim 21
Independent Claim 604 words
An apparatus for transaction management for a computer system, comprising: a permanent storage device for storing data, wherein one of the computers is associate with said at least one permanent storage device; and each computer associated with said permanent storage device has an ownership table having an entry for each page of the permanent storage device which is encached at a computer, each entry for a page indicating which computers have the page encached and whether the page is encached for one of read and write; a plurality of computers each having a processing unit and a cache memory for storing data, the processing unit including a data requesting device that requests data from the permanent storage device, wherein the computer system has an application program involving at least one transaction; a detection device included in a server computer having an input for receiving a request for data from a first computer, and an output for indicating whether the data is in the cache memory of a second computer and has a cache state indicating that access to the data by the first computer is not permitted, wherein the detection device utilizes the ownership table to determine if the page is encached; an instruction device included in the server computer, responsive to said detection device, and having an output for instructing said second computer to change the cached state of the data in response to said detection device indicating that access to the data by the first computer is not permitted, wherein said instruction device issues a call back message that is separate from said request for data; a data transfer mechanism that transfers said data to the first computer after the second computer changes the cached state of the data; a detection device having an input for receiving a request for data from a database for write access from the requesting device of the first computer, and an output for indicating whether the requested data is in the cache memory of the second computer; an instruction device having an input coupled to the output of the detection device for receiving a detection by the detecting device that the requested data is in the cache memory of the second computer, and an output for instructing the second computer to remove the data from its cache memory; and a data transfer mechanism that transfers the requested data to the first computer; a querying device having an output for querying each computer having the page encached to determine if the page is also locked; a mechanism having an input for receiving a reply from all queried computers that the page is not locked, a first output for removing all entries for the page from the ownership table, and a second output coupled to the data transferring device for permitting the data transferring device to transfer the page to the cache memory of the requesting computer, a deferral device having an input that receives a response from at least one queried computer that the page is looked, that defers further action until the transactions being run on all said at least one queried computer commits, said mechanism being operative when the transactions being run on all queried computers commit, wherein each queried computer has a cache directory having an entry for each page in the corresponding cache memory, which entry indicates a cached state and a locked state of the page; and a lookup table device having an input for receiving a locked query, and an output for looking up the page in the cache directory of a queried computer to determine if the page is locked.
Claim 22
Dependent Claim 75 words
An apparatus as set forth in claim 15 , wherein each queried computer includes a removing and replying device for receiving a determination that the page is unlocked, having a first output for removing the page from the cache memory of the said each queried computer, a second output for removing the entry for the page from the cache directory, and a third output for replying to a querying computer that the page is unlocked.
Claim 23
Dependent Claim 84 words
An apparatus as claimed in claim 16 , wherein each queried computer includes a marking and replying device having an input for receiving a determination that the page is locked, a first output for marking the entry for the page in the cache directory to be evicted when the transaction commits, and a third output for replying to the querying computer that the page is locked, said removing and replying device being operative when the transaction being run on said each queried computer commits.

References Cited (Backward Citations)

US4394731A Cited
US5202971A Cited
US5210848A Cited
WO1991003024A1 Cited
US5161227A Cited
US5301290A Cited
US5297269A Cited
US5261069A Cited
US5276835A Cited
US5537574A Cited
US5327556A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-03-05 2004-09-04 2005-03-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-03-05 2008-09-04 2009-03-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-03-05 2012-09-04 2013-03-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag