mirror of
https://github.com/postgres/postgres.git
synced 2025-07-21 16:02:15 +03:00
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
This commit is contained in:
@ -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);
|
||||
|
Reference in New Issue
Block a user