diff options
author | Robert Haas <rhaas@postgresql.org> | 2021-10-14 16:06:43 -0400 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2021-10-14 16:13:36 -0400 |
commit | 46846433a03dff4f2e08c8a161e54a842da360d6 (patch) | |
tree | 668e9ff626ab6b3b8708dcb4e6b27748db6d7a66 /src/backend/executor/tqueue.c | |
parent | 7821a0bf2096df659671924fbeef0ebc66449292 (diff) | |
download | postgresql-46846433a03dff4f2e08c8a161e54a842da360d6.tar.gz postgresql-46846433a03dff4f2e08c8a161e54a842da360d6.zip |
shm_mq: Update mq_bytes_written less often.
Do not update shm_mq's mq_bytes_written until we have written
an amount of data greater than 1/4th of the ring size, unless
the caller of shm_mq_send(v) requests a flush at the end of
the message. This reduces the number of calls to SetLatch(),
and also the number of CPU cache misses, considerably, and thus
makes shm_mq significantly faster.
Dilip Kumar, reviewed by Zhihong Yu and Tomas Vondra. Some
minor cosmetic changes by me.
Discussion: http://postgr.es/m/CAFiTN-tVXqn_OG7tHNeSkBbN+iiCZTiQ83uakax43y1sQb2OBA@mail.gmail.com
Diffstat (limited to 'src/backend/executor/tqueue.c')
-rw-r--r-- | src/backend/executor/tqueue.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/executor/tqueue.c b/src/backend/executor/tqueue.c index 7af9fbe9848..eb0cbd7b217 100644 --- a/src/backend/executor/tqueue.c +++ b/src/backend/executor/tqueue.c @@ -60,7 +60,7 @@ tqueueReceiveSlot(TupleTableSlot *slot, DestReceiver *self) /* Send the tuple itself. */ tuple = ExecFetchSlotMinimalTuple(slot, &should_free); - result = shm_mq_send(tqueue->queue, tuple->t_len, tuple, false); + result = shm_mq_send(tqueue->queue, tuple->t_len, tuple, false, false); if (should_free) pfree(tuple); |