Patent ID: 6199141
Filing Date: 2001-03-06
Classification: G06F,Y10S

Abstract:
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, whereineach 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; andmeans, 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.