summaryrefslogtreecommitdiff
path: root/meson_options.txt
diff options
context:
space:
mode:
authorAmit Kapila <akapila@postgresql.org>2022-12-08 06:05:09 +0530
committerAmit Kapila <akapila@postgresql.org>2022-12-08 06:05:09 +0530
commitbf07ab492c461460b4a69279abb2ef996b4f67ec (patch)
tree42be8f7bc1ec5dd4b666fb51562acd09ce2e8c75 /meson_options.txt
parent3f0e786ccbf50a2f819fbf72d51ba13221adaaa1 (diff)
downloadpostgresql-bf07ab492c461460b4a69279abb2ef996b4f67ec.tar.gz
Avoid unnecessary streaming of transactions during logical replication.
After restart, we don't perform streaming of an in-progress transaction if it was previously decoded and confirmed by the client. To achieve that we were comparing the END location of the WAL record being decoded with the WAL location we have already decoded and confirmed by the client. While decoding the commit record, to decide whether to process and send the complete transaction, we compare its START location with the WAL location we have already decoded and confirmed by the client. Now, if we need to queue some change in the transaction while decoding the commit record (e.g. snapshot), it is possible that we decide to stream the transaction but later commit processing decides to skip it. In such a case, we would needlessly send the changes and later when we decide to skip it, we will send stream abort. We also sometimes decide to stream the changes when we actually just need to process them locally like a change for invalidations. This will lead us to send empty streams. To avoid this, while queuing each change for decoding, we remember whether the transaction has any change that actually needs to be sent downstream and use that information later to decide whether to stream the transaction or not. Note, we can't avoid all cases where we have to send empty streams like the case where the plugin later decides that the change is not publishable. However, we will no longer need to send stream_abort when we skip sending a particular transaction. Author: Dilip Kumar Reviewed-by: Hou Zhijie, Ashutosh Bapat, Shi yu, Amit Kapila Discussion: https://postgr.es/m/CAFiTN-tHK=7LzfrPs8fbT2ksrOJGQbzywcgXst2bM9-rJJAAUg@mail.gmail.com
Diffstat (limited to 'meson_options.txt')
0 files changed, 0 insertions, 0 deletions