Jeff Gold <[EMAIL PROTECTED]> writes:
>> I was sort of expecting you to come back and say that you
>> thought the process might have done 640K TRUNCATEs over its lifespan,
>> but I guess not?

> That's possible.  The process does twelve TRUNCATEs every minute.  The 
> problem we're talking about seems to occur only when the system has been 
> running for quite some time.  Still, that's seems like an awefully slow 
> rate.  Is it really likely that a postmaster backend would accumulate 
> relcache entries in this case?

Well, assuming that TRUNCATE is in fact causing a relcache entry to get
leaked, it's a kilobyte-and-change per entry ... so 12K per minute,
17M or so per day, you'd get to 640000 entries in about 37 days.

> What stands out is that nearly all of the entries seem to be pg_* 
> tables.  A "grep '^pg_' crash_dump | wc -l" gives 640499 entries, which 
> is pretty nearly the entire file.  We are careful not to name our tables 
> with the "pg_" prefix, so I believe these are system tables.  This is 
> part of what originally made us believe pg_autovacuum was responsible.

I am not completely sure without looking at the code, but I think
TRUNCATE makes a short-lived table by the name of pg_temp_xxx, so
this observation seems to fit with the idea that TRUNCATE's at fault.
You showed some pg_toast entries in your original list, too, but those
could be subsidiaries of the truncated tables.

I think we have a suspect --- will go look.

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to