mirror of
https://github.com/postgres/postgres.git
synced 2025-10-27 00:12:01 +03:00
Restructure smgr API as per recent proposal. smgr no longer depends on
the relcache, and so the notion of 'blind write' is gone. This should improve efficiency in bgwriter and background checkpoint processes. Internal restructuring in md.c to remove the not-very-useful array of MdfdVec objects --- might as well just use pointers. Also remove the long-dead 'persistent main memory' storage manager (mm.c), since it seems quite unlikely to ever get resurrected.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/storage/sinval.h,v 1.32 2003/11/29 22:41:13 pgsql Exp $
|
||||
* $PostgreSQL: pgsql/src/include/storage/sinval.h,v 1.33 2004/02/10 01:55:26 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
#include "storage/backendid.h"
|
||||
#include "storage/itemptr.h"
|
||||
#include "storage/relfilenode.h"
|
||||
|
||||
|
||||
/*
|
||||
@@ -27,6 +28,13 @@
|
||||
* ID field). -1 means a relcache inval message. Other negative values
|
||||
* are available to identify other inval message types.
|
||||
*
|
||||
* Relcache invalidation messages usually also cause invalidation of entries
|
||||
* in the smgr's relation cache. This means they must carry both logical
|
||||
* and physical relation ID info (ie, both dbOID/relOID and RelFileNode).
|
||||
* In some cases RelFileNode information is not available so the sender fills
|
||||
* those fields with zeroes --- this is okay so long as no smgr cache flush
|
||||
* is required.
|
||||
*
|
||||
* Shared-inval events are initially driven by detecting tuple inserts,
|
||||
* updates and deletions in system catalogs (see CacheInvalidateHeapTuple).
|
||||
* An update generates two inval events, one for the old tuple and one for
|
||||
@@ -63,6 +71,12 @@ typedef struct
|
||||
int16 id; /* type field --- must be first */
|
||||
Oid dbId; /* database ID, or 0 if a shared relation */
|
||||
Oid relId; /* relation ID */
|
||||
RelFileNode physId; /* physical file ID */
|
||||
/*
|
||||
* Note: it is likely that RelFileNode will someday be changed to
|
||||
* include database ID. In that case the dbId field will be redundant
|
||||
* and should be removed to save space.
|
||||
*/
|
||||
} SharedInvalRelcacheMsg;
|
||||
|
||||
typedef union
|
||||
|
||||
Reference in New Issue
Block a user