aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/tqueue.c
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2021-10-14 16:06:43 -0400
committerRobert Haas <rhaas@postgresql.org>2021-10-14 16:13:36 -0400
commit46846433a03dff4f2e08c8a161e54a842da360d6 (patch)
tree668e9ff626ab6b3b8708dcb4e6b27748db6d7a66 /src/backend/executor/tqueue.c
parent7821a0bf2096df659671924fbeef0ebc66449292 (diff)
downloadpostgresql-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.c2
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);