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+iicztiq83uakax43y1sqb2...@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/46846433a03dff4f2e08c8a161e54a842da360d6 Modified Files -------------- src/backend/executor/tqueue.c | 2 +- src/backend/libpq/pqmq.c | 7 +++- src/backend/storage/ipc/shm_mq.c | 62 +++++++++++++++++++++++++++++------ src/include/storage/shm_mq.h | 8 +++-- src/test/modules/test_shm_mq/test.c | 7 ++-- src/test/modules/test_shm_mq/worker.c | 2 +- 6 files changed, 69 insertions(+), 19 deletions(-)
