Simon Riggs <simon@2ndQuadrant.com> writes:
> On Wed, 2010-02-03 at 01:14 +0000, Tom Lane wrote:
>> 1. Get rid of inval.c's dependency on relfilenode, by not having it emit
>> smgr invalidations as a result of relcache flushes. Instead, smgr sinval
>> messages are sent directly from smgr.c when an actual relation delete or
>> truncate is done. This makes considerably more structural sense and allows
>> elimination of a large number of useless smgr inval messages that were
>> formerly sent even in cases where nothing was changing at the
>> physical-relation level. Note that this reintroduces the concept of
>> nontransactional inval messages, but that's okay --- because the messages
>> are sent by smgr.c, they will be sent in Hot Standby slaves, just from a
>> lower logical level than before.
> Presumably this means that SHAREDINVALSMGR_ID messages are no longer
> part of the invalidation messages attached to a commit record?
Correct.
> If so, there is some minor code cleanup and comment changes in
> ProcessCommittedInvalidationMessages(). Would you like me to do that, or
> should we wait?
I saw that. I didn't touch it because it's not directly relevant to
what I'm doing right now, but I would like to go back and see whether
that routine can't be got rid of completely. It seems to me to be a
very klugy substitute for having enough information. I'm inclined to
think that we should emit an sinval message (or maybe better a separate
WAL entry) for initfile removal, instead of trying to reverse-engineer
whether one happened.
regards, tom lane