From: "Philip Molter" <philip@datafoundry.net>
> On Wed, Jul 18, 2001 at 05:23:53PM +1000, Martijn van Oosterhout wrote:
> : I'm getting these errors in my logs. they don't seem bad but I like to
be
> : sure:
> :
> : 010708.02:33:03.966 [2369] SIInsertDataEntry: table is 70% full,
signaling postmaster
> : 010708.02:33:03.966 [27400] pmdie 12
> : 010708.02:33:03.991 [27400] SignalChildren: sending signal 12 to process
2369
> : 010708.02:33:03.991 [27400] SignalChildren: sending signal 12 to process
24757
> : 010708.02:33:03.991 [27400] SignalChildren: sending signal 12 to process
9657
> : 010708.02:33:04.420 [9657] NOTICE: InvalidateSharedInvalid: cache
state reset
> : 010708.04:00:03.924 [2535] NOTICE: RegisterSharedInvalid: SI buffer
overflow
> : 010708.04:00:03.924 [2535] NOTICE: InvalidateSharedInvalid: cache
state reset
> For the record, I've seen the same errors at various times through the
> use of our database, and it's almost always during vacuums (7.1.2).
>
From the source:
/*
* Try to prevent table overflow. When the table is 70% full send a
* SIGUSR2 (ordinarily a NOTIFY signal) to the postmaster, which
will
* send it back to all the backends. This will force idle backends
to
* execute a transaction to look through pg_listener for NOTIFY
* messages, and as a byproduct of the transaction start they will
* read SI entries.
*
* This should never happen if all the backends are actively
executing
* queries, but if a backend is sitting idle then it won't be
starting
* transactions and so won't be reading SI entries.
*
* dz - 27 Jan 1998
*/
Looks like it's allocating space or something, so invalidates any data in
backend caches.
- Richard Huxton