/* * StrategyShmemSize * * estimate the size of shared memory used by the freelist-related structures. * * Note: for somewhat historical reasons, the buffer lookup hashtable size * is also determined here. */ Size StrategyShmemSize(void) { Size size = 0; /* size of lookup hash table ... see comment in StrategyInitialize */ size = add_size(size, BufTableShmemSize(NBuffers + NUM_BUFFER_PARTITIONS)); /* size of the shared replacement strategy control block */ size = add_size(size, MAXALIGN(sizeof(BufferStrategyControl))); return size; }
/* * StrategyShmemSize * * estimate the size of shared memory used by the freelist-related structures. * * Note: for somewhat historical reasons, the buffer lookup hashtable size * is also determined here. */ Size StrategyShmemSize(void) { Size size = 0; /* size of lookup hash table */ size = add_size(size, BufTableShmemSize(NBuffers)); /* size of the shared replacement strategy control block */ size = add_size(size, MAXALIGN(sizeof(BufferStrategyControl))); return size; }
/* * StrategyShmemSize * * estimate the size of shared memory used by the freelist-related structures. */ int StrategyShmemSize(void) { /* A1out list can hold 50% of NBuffers, per Johnson and Shasha */ int nCDBs = NBuffers + NBuffers / 2; int size = 0; /* size of CDB lookup hash table */ size += BufTableShmemSize(nCDBs); /* size of the shared replacement strategy control block */ size += MAXALIGN(sizeof(BufferStrategyControl)); /* size of the CDB directory */ size += MAXALIGN(nCDBs * sizeof(BufferStrategyCDB)); return size; }