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 1mxG8h-0006kS-S3 for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Dec 2021 22:19:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mxG8g-0000Se-Pe for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Dec 2021 22:19:14 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mxG8g-0000SQ-FQ for pgsql-hackers@lists.postgresql.org; Tue, 14 Dec 2021 22:19:14 +0000 Received: from out1-smtp.messagingengine.com ([66.111.4.25]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mxG8b-0006c0-Lo for pgsql-hackers@postgresql.org; Tue, 14 Dec 2021 22:19:14 +0000 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 28E855C0425; Tue, 14 Dec 2021 17:19:08 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Tue, 14 Dec 2021 17:19:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=meWK1ErrouuRWtLdW0HebbFjQBAWz59VgG0JkwZUF AY=; b=BfYkx456Fe+Yh/eXu9QJLojzTwjbI+C/ik48jnQO2wiAVx64sUZeqZmZt ZJSl60g4Ih6GsE1mspiCnjAQ+hBcpRBjivfAUUrE8yLZLtQ+jzUSxp8Bef/sq5i3 Y/NcM6NbKKnTJJfm4ADusLrqjpYk/xw4BGsfcPiF7PwFMtKt7/FFgrln98jTF9g9 wMh+BA/WYa3qvFd+GnuDo3/wXQIIfRuqa7VynosPrWpc6BcYU5K/4hm+mp/+6Bfu sZN7ge/gWjPks472ZUocLIJbOF5uzhYmZbqMn/at0tpDtNr8tPUFO40QmxUkZdUT 6sbmb2OUAeyyBo0vQG0qcLi9GwtyA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddrledtgdduieduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefkffggfgfuvfhfhfgjtgfgsehtje ertddtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghr rdgvihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhmqeenucggtffrrg htthgvrhhnpeefjeegheetuefhveevudelueeftdejteeiffetvdduhfdtieefgfeutedt veeggfenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hpvghtvghrrdgvihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 14 Dec 2021 17:19:06 -0500 (EST) Message-ID: Date: Tue, 14 Dec 2021 23:19:05 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Subject: Re: Synchronizing slots from primary to standby Content-Language: en-US To: Dimitri Fontaine Cc: pgsql-hackers References: <514f6f2f-6833-4539-39f1-96cd1e011f23@enterprisedb.com> From: Peter Eisentraut In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 24.11.21 17:25, Dimitri Fontaine wrote: > Is there a case to be made about doing the same thing for physical > replication slots too? It has been considered. At the moment, I'm not doing it, because it would add more code and complexity and it's not that important. But it could be added in the future. > Given the admitted state of the patch, I didn't focus on tests. I could > successfully apply the patch on-top of current master's branch, and > cleanly compile and `make check`. > > Then I also updated pg_auto_failover to support Postgres 15devel [2] so > that I could then `make NODES=3 cluster` there and play with the new > replication command: > > $ psql -d "port=5501 replication=1" -c "LIST_SLOTS;" > psql:/Users/dim/.psqlrc:24: ERROR: XX000: cannot execute SQL commands in WAL sender for physical replication > LOCATION: exec_replication_command, walsender.c:1830 > ... > > I'm not too sure about this idea of running SQL in a replication > protocol connection that you're mentioning, but I suppose that's just me > needing to brush up on the topic. FWIW, the way the replication command parser works, if there is a parse error, it tries to interpret the command as a plain SQL command. But that only works for logical replication connections. So in physical replication, if you try to run anything that does not parse, you will get this error. But that has nothing to do with this feature. The above command works for me, so maybe something else went wrong in your situation. > Maybe the first question about configuration would be about selecting > which slots a standby should maintain from the primary. Is it all of the > slots that exists on both the nodes, or a sublist of that? > > Is it possible to have a slot with the same name on a primary and a > standby node, in a way that the standby's slot would be a completely > separate entity from the primary's slot? If yes (I just don't know at > the moment), well then, should we continue to allow that? This has been added in v2. > Also, do we want to even consider having the slot management on a > primary node depend on the ability to sync the advancing on one or more > standby nodes? I'm not sure to see that one as a good idea, but maybe we > want to kill it publically very early then ;-) I don't know what you mean by this.