Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pWvT2-0001VE-W9 for pgsql-hackers@arkaria.postgresql.org; Tue, 28 Feb 2023 08:36:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pWvT1-0005ID-2U for pgsql-hackers@arkaria.postgresql.org; Tue, 28 Feb 2023 08:36:11 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pWvT0-0005I4-Ir for pgsql-hackers@lists.postgresql.org; Tue, 28 Feb 2023 08:36:10 +0000 Received: from mail-oa1-x32.google.com ([2001:4860:4864:20::32]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pWvSv-0006Uf-SB for pgsql-hackers@postgresql.org; Tue, 28 Feb 2023 08:36:09 +0000 Received: by mail-oa1-x32.google.com with SMTP id 586e51a60fabf-17235c8dab9so10136616fac.7 for ; Tue, 28 Feb 2023 00:36:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ZtXt7C2GVIlTzjSUAioZuBUoOqrpN45Nun6iB5wRJCg=; b=YD5JPDkquvilW0kQa1JfRI6UruyTRpTGrKE6pHq+QE/+rHEdvWzQlz77eaqGetk3lW YK2CMmRsOksf4D3W2c39RzVP3W+lLyfnPKBh2w6NAveW9sCXluEo6c7xgqZvNjwH1QBy 2qCt5/t+5aVr3cQ9wHJaoI+NAaJWxzcLGwz/2EhKUnGbQ4wfOXbU+hHkXgxmxoNUAqMQ MCpCITIqXJ2yCl1HdpTjwWKqdx4hUhyWH5u5uVvXOyVaYpmy4iqlF7wnvB1di0vYkOQ5 X5N0nu2ZOh7PJFxrZ+GA/grDHSZtNf/FybAcL9mjpGHRIZHGQeH/ssEZEEYjKDBag0EB 7rLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ZtXt7C2GVIlTzjSUAioZuBUoOqrpN45Nun6iB5wRJCg=; b=xfk5USS9fQv5wlkPQk42q5gs1kY00sDNfqjfsOjzZyyRNuKkGeQOIve+M2S86h9Cj0 sFBgaj7vqRlWJQhCSSo+tzl1tA63r5ylmdzDRqoX/MCC3NoaolssGsiWwZ1wY/bSLqfW mHbTg/ZkcUZ3SEFxb9h/uDhgFON9xlqqwzstul0t1DbXzRsrtMyuWihRHO4ch7Cg8H61 yRwjet12MHxP9n5g+XD8e1ySjUyBeH2T5JntoJYUUEF7bUoXssejIgz13tV98+tl7B4C 4UlMcdJ8HezhPonXAe/Xa5tbVXnD85R43ypVKr5HCXqWAO1uA9u3afp0aFI2/u8/HqMj L4Kw== X-Gm-Message-State: AO0yUKUcRqEP58u1Tm0/qw27/GzlgOyXoZrZsZw9jXEUe0wGnXYuY/tx gWUlr20PoSkO4UwmLJvll+bEPf/HJ5BFXwtDrbLZerrMed+isw== X-Google-Smtp-Source: AK7set9/JpDAu+oBypQLNkoeHMNbfD9QDfqQNYSseQ4zQ74TwSjq3M+9O+90vigDHkhg05IIY4j1Ahm3wa2t1AVCuRc= X-Received: by 2002:a05:6870:6706:b0:16e:919d:7974 with SMTP id gb6-20020a056870670600b0016e919d7974mr958675oab.5.1677573364843; Tue, 28 Feb 2023 00:36:04 -0800 (PST) MIME-Version: 1.0 References: <20230216.142101.1198410163394123325.horikyota.ntt@gmail.com> <20230216.175546.98020490115903046.horikyota.ntt@gmail.com> In-Reply-To: From: Amit Kapila Date: Tue, 28 Feb 2023 14:05:52 +0530 Message-ID: Subject: Re: Time delayed LR (WAS Re: logical replication restrictions) To: "Hayato Kuroda (Fujitsu)" Cc: Masahiko Sawada , "shiy.fnst@fujitsu.com" , Peter Smith , Kyotaro Horiguchi , "andres@anarazel.de" , "vignesh21@gmail.com" , "shveta.malik@gmail.com" , "Takamichi Osumi (Fujitsu)" , "dilipbalaut@gmail.com" , "euler@eulerto.com" , "m.melihmutlu@gmail.com" , "marcos@f10.com.br" , "pgsql-hackers@postgresql.org" Content-Type: multipart/mixed; boundary="0000000000007f880c05f5be7c7b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007f880c05f5be7c7b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Feb 27, 2023 at 2:21=E2=80=AFPM Hayato Kuroda (Fujitsu) wrote: > Few comments: 1. + /* + * If we've requested to shut down, exit the process. + * + * Note that WalSndDone() cannot be used here because the delaying + * changes will be sent in the function. + */ + if (got_STOPPING) + { + QueryCompletion qc; + + /* Inform the standby that XLOG streaming is done */ + SetQueryCompletion(&qc, CMDTAG_COPY, 0); + EndCommand(&qc, DestRemote, false); + pq_flush(); Do we really need to do anything except for breaking the loop and let the exit handling happen in the main loop when 'got_STOPPING' is set? AFAICS, this is what we are doing in some other palces (See WalSndWaitForWal). Won't that work? It seems that will help us sending all the pending WAL. 2. + /* Try to flush pending output to the client */ + if (pq_flush_if_writable() !=3D 0) + WalSndShutdown(); Is there a reason to try flushing here? Apart from the above, I have made a few changes in the comments in the attached diff patch. If you agree with those then please include them in the next version. --=20 With Regards, Amit Kapila. --0000000000007f880c05f5be7c7b Content-Type: application/octet-stream; name="changes_amit_1.patch" Content-Disposition: attachment; filename="changes_amit_1.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lenzulpa0 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IGU2ODkwMmFlMzQu LjNjZGU2ZDM3ZmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv d29ya2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwpA QCAtNDYyMyw5ICs0NjIzLDExIEBAIEFwcGx5V29ya2VyTWFpbihEYXR1bSBtYWluX2FyZykKIAlp ZiAoIWFtX3RhYmxlc3luY193b3JrZXIoKSkKIAl7CiAJCS8qCi0JCSAqIFRpbWUtZGVsYXllZCBs b2dpY2FsIHJlcGxpY2F0aW9uIGRvZXMgbm90IHN1cHBvcnQgdGFibGVzeW5jCi0JCSAqIHdvcmtl cnMsIHNvIG9ubHkgdGhlIGxlYWRlciBhcHBseSB3b3JrZXIgY2FuIHJlcXVlc3Qgd2Fsc2VuZGVy cyB0bwotCQkgKiBkZWxheSBvbiB0aGUgcHVibGlzaGVyIHNpZGUuCisJCSAqIFdlIHN1cHBvcnQg dGltZS1kZWxheWVkIGxvZ2ljYWwgcmVwbGljYXRpb24gb25seSBmb3IgdGhlIGFwcGx5CisJCSAq IHdvcmtlci4gVGhpcyBpcyBiZWNhdXNlIGlmIHdlIHN1cHBvcnQgZGVsYXkgZHVyaW5nIHRoZSBp bml0aWFsIHN5bmMKKwkJICogdGhlbiBvbmNlIHdlIHJlYWNoIHRoZSBsaW1pdCBvZiB0YWJsZXN5 bmMgd29ya2VycyBpdCB3b3VsZCBpbXBvc2UgYQorCQkgKiBkZWxheSBmb3IgZWFjaCBzdWJzZXF1 ZW50IHdvcmtlci4gVGhhdCB3b3VsZCBjYXVzZSBpbml0aWFsIHRhYmxlCisJCSAqIHN5bmNocm9u aXphdGlvbiBjb21wbGV0aW9uIHRvIHRha2UgYSBsb25nIHRpbWUuCiAJCSAqLwogCQlpZiAoc2Vy dmVyX3ZlcnNpb24gPj0gMTYwMDAwICYmIE15U3Vic2NyaXB0aW9uLT5taW5zZW5kZGVsYXkgPiAw KQogCQkJb3B0aW9ucy5wcm90by5sb2dpY2FsLm1pbl9zZW5kX2RlbGF5ID0gTXlTdWJzY3JpcHRp b24tPm1pbnNlbmRkZWxheTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bn b3V0cHV0L3Bnb3V0cHV0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291 dHB1dC5jCmluZGV4IDYxZmFmMmQ2ODUuLjkwYmJlYTk0MWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtNTI5LDcgKzUyOSwxMCBAQCBwZ291dHB1 dF9zdGFydHVwKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgT3V0cHV0UGx1Z2luT3B0aW9u cyAqb3B0LAogCQllbHNlCiAJCQljdHgtPnR3b3BoYXNlX29wdF9naXZlbiA9IHRydWU7CiAKLQkJ LyogQ29weSBnaXZlbiB0aW1lIHBlcmlvZCB0byBkZWNvZGluZyBjb250ZXh0ICovCisJCS8qCisJ CSAqIFJlbWVtYmVyIHRoZSBkZWxheSB0aW1lIHBlcmlvZCB0byBiZSB1c2VkIGxhdGVyIGJlZm9y ZSBzZW5kaW5nIHRoZQorCQkgKiBjaGFuZ2VzLgorCQkgKi8KIAkJY3R4LT5taW5fc2VuZF9kZWxh eSA9IGRhdGEtPm1pbl9zZW5kX2RlbGF5OwogCiAJCS8qIEluaXQgcHVibGljYXRpb24gc3RhdGUu ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IDlmMzk2ODkyOGYuLmFkMzUx NTgyMWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCisr KyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC0zODU0LDEzICszODU0 LDE1IEBAIExhZ1RyYWNrZXJSZWFkKGludCBoZWFkLCBYTG9nUmVjUHRyIGxzbiwgVGltZXN0YW1w VHogbm93KQogLyoKICAqIExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgJ2RlbGF5JyBjYWxsYmFjay4K ICAqCi0gKiBXYWl0IGxvbmcgZW5vdWdoIHRvIG1ha2Ugc3VyZSBhIHRyYW5zYWN0aW9uIGlzIGFw cGxpZWQgYXQgbGVhc3QgdGhhdAotICogcGVyaW9kIGJlaGluZCB0aGUgcHVibGlzaGVyLgorICog V2FpdCBsb25nIGVub3VnaCB0byBtYWtlIHN1cmUgYSB0cmFuc2FjdGlvbiBpcyBhcHBsaWVkIGF0 IGxlYXN0CisgKiBtaW5fc2VuZF9kZWxheSB0aW1lIHBlcmlvZCBhZnRlciBpdCBpcyBwZXJmb3Jt ZWQgYXQgdGhlIHB1Ymxpc2hlci4KKyAqCisgKiBkZWxheV9zdGFydCBpcyB0aGUgdHJhbnNhY3Rp b24gZW5kIHRpbWUuCiAgKi8KIHN0YXRpYyB2b2lkCiBXYWxTbmREZWxheShMb2dpY2FsRGVjb2Rp bmdDb250ZXh0ICpjdHgsIFRyYW5zYWN0aW9uSWQgeGlkLCBUaW1lc3RhbXBUeiBkZWxheV9zdGFy dCkKIHsKLQkvKiBXYWl0IHRpbGwgZGVsYXlVbnRpbCBieSB0aGUgbGF0Y2ggbWVjaGFuaXNtICov CisJLyogQXBwbHkgdGhlIGRlbGF5IGJ5IHRoZSBsYXRjaCBtZWNoYW5pc20gKi8KIAl3aGlsZSAo dHJ1ZSkKIAl7CiAJCVRpbWVzdGFtcFR6IG5vdzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNj cmlwdGlvbi90LzAwMV9yZXBfY2hhbmdlcy5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAw MV9yZXBfY2hhbmdlcy5wbAppbmRleCBhZDA4MzFiYjFhLi5hMjczZTdkZjY4IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMDFfcmVwX2NoYW5nZXMucGwKKysrIGIvc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL3QvMDAxX3JlcF9jaGFuZ2VzLnBsCkBAIC01MTgsMTAgKzUxOCwxMCBA QCAkbm9kZV9wdWJsaXNoZXItPnBvbGxfcXVlcnlfdW50aWwoJ3Bvc3RncmVzJywKICMgVGVzdCB0 aW1lLWRlbGF5ZWQgbG9naWNhbCByZXBsaWNhdGlvbgogIwogIyBJZiB0aGUgc3Vic2NyaXB0aW9u IHNldHMgbWluX3NlbmRfZGVsYXkgcGFyYW1ldGVyLCB0aGUgd2Fsc2VuZGVyIHdpbGwgZGVsYXkK LSMgdGhlIHRyYW5zYWN0aW9uIHNlbmQgZm9yIG1pbl9zZW5kX2RlbGF5IG1pbGxpc2Vjb25kcy4g V2UgdmVyaWZ5IHRoaXMgYnkKLSMgbG9va2luZyBhdCB0aGUgdGltZSBkaWZmZXJlbmNlIGJldHdl ZW4gYSkgd2hlbiB0dXBsZXMgYXJlIGluc2VydGVkIG9uIHRoZQotIyBwdWJsaXNoZXIsIGFuZCBi KSB3aGVuIHRob3NlIGNoYW5nZXMgYXJlIHJlcGxpY2F0ZWQgb24gdGhlIHN1YnNjcmliZXIuIEV2 ZW4KLSMgb24gc2xvdyBtYWNoaW5lcywgdGhpcyBzdHJhdGVneSB3aWxsIGdpdmUgcHJlZGljdGFi bGUgYmVoYXZpb3IuCisjIHRoZSB0cmFuc2FjdGlvbiBmb3IgbWluX3NlbmRfZGVsYXkgbWlsbGlz ZWNvbmRzLiBXZSB2ZXJpZnkgdGhpcyBieSBsb29raW5nCisjIGF0IHRoZSB0aW1lIGRpZmZlcmVu Y2UgYmV0d2VlbiBhKSB3aGVuIHR1cGxlcyBhcmUgaW5zZXJ0ZWQgb24gdGhlIHB1Ymxpc2hlciwK KyMgYW5kIGIpIHdoZW4gdGhvc2UgY2hhbmdlcyBhcmUgcmVwbGljYXRlZCBvbiB0aGUgc3Vic2Ny aWJlci4gRXZlbiBvbiBzbG93CisjIG1hY2hpbmVzLCB0aGlzIHN0cmF0ZWd5IHdpbGwgZ2l2ZSBw cmVkaWN0YWJsZSBiZWhhdmlvci4KIAogIyBTZXQgbWluX3NlbmRfZGVsYXkgcGFyYW1ldGVyIHRv IDMgc2Vjb25kcwogbXkgJGRlbGF5ID0gMzsK --0000000000007f880c05f5be7c7b--