diff options
author | Amit Kapila <akapila@postgresql.org> | 2021-05-06 11:21:26 +0530 |
---|---|---|
committer | Amit Kapila <akapila@postgresql.org> | 2021-05-06 11:21:26 +0530 |
commit | 592f00f8dec68038301467a904ac514eddabf6cd (patch) | |
tree | 5bc251cc881aa61308c32e9996a9ca770acf5279 /src/backend/replication/logical/reorderbuffer.c | |
parent | 7f2e10baa2482494dbcf70e0ae6f0469771e0b4c (diff) | |
download | postgresql-592f00f8dec68038301467a904ac514eddabf6cd.tar.gz postgresql-592f00f8dec68038301467a904ac514eddabf6cd.zip |
Update replication statistics after every stream/spill.
Currently, replication slot statistics are updated at prepare, commit, and
rollback. Now, if the transaction is interrupted the stats might not get
updated. Fixed this by updating replication statistics after every
stream/spill.
In passing update the docs to change the description of some of the slot
stats.
Author: Vignesh C, Sawada Masahiko
Reviewed-by: Amit Kapila
Discussion: https://postgr.es/m/20210319185247.ldebgpdaxsowiflw@alap3.anarazel.de
Diffstat (limited to 'src/backend/replication/logical/reorderbuffer.c')
-rw-r--r-- | src/backend/replication/logical/reorderbuffer.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c index c79425fbb73..e80a195472e 100644 --- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -3559,6 +3559,9 @@ ReorderBufferSerializeTXN(ReorderBuffer *rb, ReorderBufferTXN *txn) /* don't consider already serialized transactions */ rb->spillTxns += (rbtxn_is_serialized(txn) || rbtxn_is_serialized_clear(txn)) ? 0 : 1; + + /* update the decoding stats */ + UpdateDecodingStats((LogicalDecodingContext *) rb->private_data); } Assert(spilled == txn->nentries_mem); @@ -3928,6 +3931,9 @@ ReorderBufferStreamTXN(ReorderBuffer *rb, ReorderBufferTXN *txn) /* Don't consider already streamed transaction. */ rb->streamTxns += (txn_is_streamed) ? 0 : 1; + /* update the decoding stats */ + UpdateDecodingStats((LogicalDecodingContext *) rb->private_data); + Assert(dlist_is_empty(&txn->changes)); Assert(txn->nentries == 0); Assert(txn->nentries_mem == 0); |