Skip to content

Commit 530050d

Browse files
committed
Add code comment explaining ins_since_vacuum and aborted inserts
Sami complained that there's a discrepancy between n_mod_since_analyze and n_ins_since_vacuum, as the former only accounts for committed changes and the latter tracks committed and aborted inserts. Nobody seemed overly concerned that this would cause any concerning issues. The repercussions, from what I can tell, are limited to causing an autovacuum to trigger for inserts sooner than it otherwise might. For typical ratios of commits to aborts, it's unlikely to ever be noticed. Fixing things to make it so n_ins_since_vacuum only displays committed inserts would require an additional field in PgStat_TableCounts, which does not quite seem worthwhile at this stage. This commit just adds a comment with some details to mention that we know about it, which will hopefully prevent repeat discussions. Reported-by: Sami Imseih <samimseih@gmail.com> Author: David Rowley <drowleyml@gmail.com> Reviewed-by: Sami Imseih <samimseih@gmail.com> Discussion: https://postgr.es/m/CAApHDvpgV3a-R2EGmPOh0L-x3pHbZpM3y4dySWfy+UqUazwDQA@mail.gmail.com
1 parent 39729ec commit 530050d

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/backend/utils/activity/pgstat_relation.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,7 +868,16 @@ pgstat_relation_flush_cb(PgStat_EntryRef *entry_ref, bool nowait)
868868
tabentry->live_tuples += lstats->counts.delta_live_tuples;
869869
tabentry->dead_tuples += lstats->counts.delta_dead_tuples;
870870
tabentry->mod_since_analyze += lstats->counts.changed_tuples;
871+
872+
/*
873+
* Using tuples_inserted to update ins_since_vacuum does mean that we'll
874+
* track aborted inserts too. This isn't ideal, but otherwise probably
875+
* not worth adding an extra field for. It may just amount to autovacuums
876+
* triggering for inserts more often than they maybe should, which is
877+
* probably not going to be common enough to be too concerned about here.
878+
*/
871879
tabentry->ins_since_vacuum += lstats->counts.tuples_inserted;
880+
872881
tabentry->blocks_fetched += lstats->counts.blocks_fetched;
873882
tabentry->blocks_hit += lstats->counts.blocks_hit;
874883

0 commit comments

Comments
 (0)