Alvaro Herrera <[EMAIL PROTECTED]> writes: > Regarding the invalidation messages, what I'm currently looking at is to > add a TransactionId to each message, which will be CurrentTransactionId > for each new message. When a subxact commits, all its messages are > relabeled to its parent. When a subxact aborts, all messages labeled > with its TransactionId are locally processed and discarded.
Sounds plausible offhand. > This is tricky because chunks are prepended to the queue, but it also > means we can stop processing as soon as a message belongs to another > transaction. AFAIR there isn't any essential semantics to the ordering of the queue entries, so you can probably get away with reordering if that makes life any easier. Also, rather than labeling each entry individually, it might be better to keep a separate list for each level of transaction. Then instead of relabeling, you'd just concat the subtrans list to its parent's. Seems like this should be faster and less storage. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match