Re: n_ins_since_vacuum stats for aborted transactions
От | Sami Imseih |
---|---|
Тема | Re: n_ins_since_vacuum stats for aborted transactions |
Дата | |
Msg-id | CAA5RZ0tFsFpRC_S2drBmYauRxj9ANwukcnjjJfTz_uboZYPfMQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: n_ins_since_vacuum stats for aborted transactions ("David G. Johnston" <david.g.johnston@gmail.com>) |
Список | pgsql-hackers |
>> >> What I am saying is n_ins_since_vacuum should not account for aborted inserts. >> > >> > It does and from what I can see it should. You need to explain why it should not. More importantly, convincingly enoughto change five year old behavior. >> >> n_ins_since_vacuum was introduced to trigger autovacuum based on the # >> of inserts >> committed, and does not care about about dead tuples in this formula. >> >> If I have a transaction that rolledback an insert of a million rows, >> I expect autovacuum to kick in based on the fact there are now 1 million >> n_dead_tup. n_ins_since_vacuumm is not relevant to the formula >> for this case. >> >> In other words, the reason n_ins_since_vacuum was introduced is to freeze >> (committed) rows, so it should not need to track dead rows to do what it intends >> to do. >> > > Well, then the authors failed to implement what they intended. Which seems unlikely, but even accepting that to be true, At least, the reasoning behind this is neither explained in code comments or in public docs. > you still haven't shown that the current behavior is undesirable. Just unexpected. It's not expected for sure. As far as being undesirable, I don't think it is because rollbacks are not that common and this is not preventing or delaying autovacuum. I do think it's probably a good idea to add code comment that it is OK to include dead tuples from a aborted insert into the n_ins_since_vacuum counter, for the above reasons. I will also update the public documentation for the counters to mention that they include rows from aborted transactions. -- Sami Imseih
В списке pgsql-hackers по дате отправления: