Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1u4u3w-0096Ke-T0 for pgsql-hackers@arkaria.postgresql.org; Wed, 16 Apr 2025 04:07:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1u4u3u-005Xu7-VI for pgsql-hackers@arkaria.postgresql.org; Wed, 16 Apr 2025 04:07:47 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1u4u3u-005Xtx-LM for pgsql-hackers@lists.postgresql.org; Wed, 16 Apr 2025 04:07:47 +0000 Received: from forwardcorp1d.mail.yandex.net ([178.154.239.200]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1u4u3r-000J2X-1R for pgsql-hackers@lists.postgresql.org; Wed, 16 Apr 2025 04:07:46 +0000 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:471f:0:640:4191:0]) by forwardcorp1d.mail.yandex.net (Yandex) with ESMTPS id 0A32C61134; Wed, 16 Apr 2025 07:07:40 +0300 (MSK) Received: from smtpclient.apple (unknown [2a02:6b8:b081:b524::1:e]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id c79XKx1FYW20-zRI7Kizv; Wed, 16 Apr 2025 07:07:39 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1744776459; bh=/+K8QTxlKCKyyxwLN/oCZAiYuKNpT8wq5gUsO/Z7xvo=; h=Message-Id:To:Date:References:Cc:In-Reply-To:From:Subject; b=PiDtpsrX9VCGoky1G0OCSJQiYf4tqD6VaZQfzqWWt9UI3ltVjDN6bKNG7rK6sYGfk IbtFM10y2ihM/Ek3xYaNrpO4FUv/G78vQVwkA22Lfyc76FNho6UcE91HI+hE0oQFEa jNmVhKftj9NK9n8ypQwPPeccRASyrJBrDnsQC+iw= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3776.700.51.11.1\)) Subject: Re: Built-in Raft replication From: Andrey Borodin In-Reply-To: <1798838.1744759182@sss.pgh.pa.us> Date: Wed, 16 Apr 2025 09:07:28 +0500 Cc: Konstantin Osipov , Greg Sabino Mullane , Nikolay Samokhvalov , pgsql-hackers@lists.postgresql.org Content-Transfer-Encoding: quoted-printable Message-Id: <20FB597F-641F-48F8-8428-D8DDBA802D58@yandex-team.ru> References: <1798838.1744759182@sss.pgh.pa.us> To: Tom Lane X-Mailer: Apple Mail (2.3776.700.51.11.1) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk > On 16 Apr 2025, at 04:19, Tom Lane wrote: >=20 > feebly, and seems to have a bus factor of 1. Another example is the > Spencer regex engine; we thought we could depend on Tcl to be the > upstream for that, but for a decade or more they've acted as though > *we* are the upstream. I think it's what Konstantin is proposing. To have our own Raft = implementation, without dependencies. IMO to better understand what is proposed we need some more description = of proposed systems. How the new system will be configured? initdb and = what than? How new node joins cluster? What is running pg_rewind when = necessary? Some time ago Peter E proposed to be able to start replication atop of = empty directory, so that initial sync would be more straightforward. And = also Heikki proposed to remove archive race condition when choosing new = timeline. I think this steps are gradual movement in the same direction. My view is what Konstantin wants is automatic replication topology = management. For some reason this technology is called HA, DCS, Raft, = Paxos and many other scary words. But basically it manages = primary_conn_info of some nodes to provide some fault-tolerance = properties. I'd start to design from here, not from Raft paper. Best regards, Andrey Borodin.=