elog(DEBUG2 in SpinLocked section.

Поиск
Список
Период
Сортировка
От Kyotaro Horiguchi
Тема elog(DEBUG2 in SpinLocked section.
Дата
Msg-id 20200602.161518.1399689010416646074.horikyota.ntt@gmail.com
обсуждение исходный текст
Ответы Re: elog(DEBUG2 in SpinLocked section.  (Fujii Masao <masao.fujii@oss.nttdata.com>)
Список pgsql-hackers
Hello.

I noticed that UpdateSpillStats calls "elog(DEBUG2" within
SpinLockAcquire section on MyWalSnd.  The lock doesn't protect rb and
in the first place the rb cannot be modified during the function is
running.

It should be out of the lock section.

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center
From 8098f066e5884128df04ecb94bcbf960d55b0c93 Mon Sep 17 00:00:00 2001
From: Kyotaro Horiguchi <horikyoga.ntt@gmail.com>
Date: Tue, 2 Jun 2020 16:10:14 +0900
Subject: [PATCH] Move an elog out of spin-lock section

The variable to be shown by the elog is not protected by the spin lock
and the elog call unnecessarily prolongs the lock section. Move it out
of the lock section.
---
 src/backend/replication/walsender.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c
index 86847cbb54..2364cbfc61 100644
--- a/src/backend/replication/walsender.c
+++ b/src/backend/replication/walsender.c
@@ -3685,17 +3685,15 @@ UpdateSpillStats(LogicalDecodingContext *ctx)
 {
     ReorderBuffer *rb = ctx->reorder;
 
-    SpinLockAcquire(&MyWalSnd->mutex);
-
-    MyWalSnd->spillTxns = rb->spillTxns;
-    MyWalSnd->spillCount = rb->spillCount;
-    MyWalSnd->spillBytes = rb->spillBytes;
-
     elog(DEBUG2, "UpdateSpillStats: updating stats %p %lld %lld %lld",
          rb,
          (long long) rb->spillTxns,
          (long long) rb->spillCount,
          (long long) rb->spillBytes);
 
+    SpinLockAcquire(&MyWalSnd->mutex);
+    MyWalSnd->spillTxns = rb->spillTxns;
+    MyWalSnd->spillCount = rb->spillCount;
+    MyWalSnd->spillBytes = rb->spillBytes;
     SpinLockRelease(&MyWalSnd->mutex);
 }
-- 
2.18.2


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Kyotaro Horiguchi
Дата:
Сообщение: Re: Resetting spilled txn statistics in pg_stat_replication
Следующее
От: Masahiko Sawada
Дата:
Сообщение: Re: More tests with USING INDEX replident and dropped indexes