DIRECTORY DBCommon USING [DBPage]; DBCache: CEDAR DEFINITIONS = BEGIN CacheHandle: TYPE = REF CacheRecord; CacheRecord: PRIVATE TYPE = RECORD [ dbPage: DBCommon.DBPage, pagePtr: LONG POINTER, lockCount: [0..7777B] _ 0, occupied: BOOL _ FALSE, written: BOOL _ FALSE, readonly: BOOL _ FALSE, pred: CacheHandle, succ: CacheHandle, hashChain: CacheHandle ]; END. CHANGE LOG Created by MBrown on January 4, 1980 2:21 PM Changed by Suzuki on January 14, 1980 2:29 PM Changed by Suzuki on January 16, 1980 8:18 AM Changed by Suzuki on January 17, 1980 1:12 PM Changed by Suzuki on February 8, 1980 4:28 PM Changed by MBrown on February 21, 1980 2:32 PM Changed by MBrown on February 21, 1980 10:36 PM Changed by Suzuki on April 16, 1980 4:00 PM Changed by MBrown on April 20, 1980 4:58 PM Changed by MBrown on August 23, 1980 6:20 PM Changed by MBrown on September 3, 1980 10:03 PM Changed by MBrown on September 12, 1980 11:15 AM Changed by MBrown on September 18, 1980 3:11 PM Changed by MBrown on February 27, 1981 11:19 AM Changed by MBrown on August 6, 1982 2:43 pm Changed by MBrown on November 24, 1982 1:04 pm Changed by Wert on August 4, 1984 7:48:20 pm PDT Changed by Willie-Sue on February 15, 1985 HDBCache.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Willie-Sue, February 15, 1985 11:11:33 am PST Last Edited by: MBrown on November 24, 1982 1:04 pm Last Edited by: Wert, August 4, 1984 7:48:55 pm PDT Types A CacheHandle represents an association between a database page and a core page. This association is guaranteed while the page is "locked", but may be broken at other times. Access to a page is more efficient if the CacheHandle is known in addition to the DBPage address, since hashing is avoided. database page number location of the cache page in memory incremented by read page, write page; decremented by unlock page. If >0, page will not move in core or leave cache. true if this page contains valid data (is contained in ht). true if this page has been written, needs to be stored back to file system. true iff this page cannot be written (according to the file system). Doubly-linked list of cache handles, used to maintain LRU information. Singly-linked list of cache handles, used to resolve hash table collisions. Adopted in meeting of 4 January; DBCacheDefs and DBFileDefs replace the former DBCacheDefs. Suffixes Defs are deleted EnumBRLockProc, RelRLockProc, and ObtainDBPage are added. WriteoutCache returns TRUE if write can succeed else returns FALSE. added NewPage and WriteLockedPage. Made WriteLockedPage return no result. Added comment to NewPage that the contents of the page are unpredictable. Added LockCountOfPage. Added LockCount and ObtainCoreLoc. Deleted LockCountOfPage. Changed the pHint parm of LockCount and ObtainCoreLoc to pValidHint, to emphasize that they must be valid for these procs to work. Added CheckState to the interface. CacheHandle is now an opaque type. Eliminated dependency on ServerPineDefs by making lfh be an untyped pointer for now. Added Finalize. Made CacheHandle a LONG POINTER. Flushed all of the stuff relating to broken read locks. CacheHandle is a REF. CacheRecord is concrete here; all procs are eliminated, as we are merging the cache and segment implementations. Added tioga formatting. Made Cedar Ę☚Īb œ™ Jšœ Īmœ1™