Re: Replication slot stats misgivings
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: Masahiko Sawada <sawada.mshk@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>, Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>
Date: 2021-03-21T10:40:35Z
Lists: pgsql-hackers
On Sun, Mar 21, 2021 at 2:56 AM Andres Freund <andres@anarazel.de> wrote: > > On 2021-03-20 09:25:40 +0530, Amit Kapila wrote: > > On Sat, Mar 20, 2021 at 12:22 AM Andres Freund <andres@anarazel.de> wrote: > > > > > > And then more generally about the feature: > > > - If a slot was used to stream out a large amount of changes (say an > > > initial data load), but then replication is interrupted before the > > > transaction is committed/aborted, stream_bytes will not reflect the > > > many gigabytes of data we may have sent. > > > > > > > We can probably update the stats each time we spilled or streamed the > > transaction data but it was not clear at that stage whether or how > > much it will be useful. > > It seems like the obvious answer here is to sync stats when releasing > the slot? > Okay, that makes sense. > > > > - I seems weird that we went to the trouble of inventing replication > > > slot stats, but then limit them to logical slots, and even there don't > > > record the obvious things like the total amount of data sent. > > > > > > > Won't spill_bytes and stream_bytes will give you the amount of data sent? > > I don't think either tracks changes that were neither spilled nor > streamed? And if they are, they're terribly misnamed? > Right, it won't track such changes but we can track that as well and I understand it will be good to track that information. I think we were too focused on stats for newly introduced features that we forget about the non-spilled and non-streamed xacts. Note - I have now created an entry for this in PG14 Open Items [1]. [1] - https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items -- With Regards, Amit Kapila.
Commits
-
Doc: Update logical decoding stats information.
- 0c6b92d9c6fb 14.0 landed
-
Fix tests for replication slots stats.
- fc69509131c3 14.0 landed
-
Update replication statistics after every stream/spill.
- 592f00f8dec6 14.0 landed
-
Fix the computation of slot stats for 'total_bytes'.
- 205f466282be 14.0 landed
-
Another try to fix the test case added by commit f5fc2f5b23.
- 51ef9173030c 14.0 landed
-
Use HTAB for replication slot statistics.
- 3fa17d37716f 14.0 landed
-
Fix test case added by commit f5fc2f5b23.
- c64dcc7fee5f 14.0 landed
-
Add information of total data processed to replication slot stats.
- f5fc2f5b23d1 14.0 landed
-
Use NameData datatype for slotname in stats.
- cca57c1d9bf7 14.0 landed