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 1sy0We-00DjLt-RT for pgsql-general@arkaria.postgresql.org; Tue, 08 Oct 2024 03:04:40 +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 1sy0Wb-001bAL-FH for pgsql-general@arkaria.postgresql.org; Tue, 08 Oct 2024 03:04:37 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sy0Wb-001bAD-39 for pgsql-general@lists.postgresql.org; Tue, 08 Oct 2024 03:04:37 +0000 Received: from mail.causa-arcana.com ([188.166.12.15]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sy0WV-0037gb-8y for pgsql-general@lists.postgresql.org; Tue, 08 Oct 2024 03:04:36 +0000 Authentication-Results: OpenDMARC; dmarc=fail (p=reject dis=none) header.from=kotovalexarian.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kotovalexarian.com; s=default; t=1728356640; bh=2ArfVN5aKtd66A60FvsO0M3k5XuoNaGjuCODSbZjMjw=; h=Date:From:To:Subject:From; b=ipKaWCWdP2PkCBkpppT+EbHvs3UQ5HwlYuji6zFlEEWHM5OPynmTK/IBinVtX5d4Y P3Sc1Y9vLr8ddBfV0jdMVlcKFLdfTN5SiRSdDMByLy7HZ5SFevsPyAyd5Ejhd+VsmW cxTuCEaBJuNKAhjV9hoNTH/uTCrhc4VdX54yWZ//9L6rFfU8v/f9JPWv/0ey05eEhW dJu88OJaIHsWAzg+mI23rmGEaNLh/sZMJXL28BwbiSETYR4uz3B9vXLUFE+J/H5I1S 7E/ix2xRK9IDYAe6JqhhvyfoRxx8Xp4bYXsKax3MeLtdEuL2asjpIvhEQEZbtvsbKG 2zGGokcRaotmQ== Received: from [127.0.0.1] (unknown [91.151.138.154]) by mail.causa-arcana.com (Postfix) with ESMTPSA id AB2E421 for ; Tue, 8 Oct 2024 03:03:59 +0000 (UTC) Date: Tue, 08 Oct 2024 07:03:57 +0400 From: me+postgres@kotovalexarian.com To: pgsql-general@lists.postgresql.org Subject: Load balancing of write queries among health-checked nodes User-Agent: K-9 Mail for Android Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hello=2E I have a PostgreSQL high availability cluster with Pgpool-II, but = I don't use the virtual IP feature so my clients don't know which node to s= end queries to=2E DNS round-robin is not a solution because it can't distin= guish between healthy and dead nodes=2E I thought about having a Pgpool-II instance on each client (client Pgpool-= II -> cluster Pgpool-II -> PostgreSQL), but AFAIK it can't distribute write= queries=2E I also know that libpq may have multiple nodes to connect, but = I need an advanced health check because a node may have connectivity but be= separated from the whole cluster so it must be considered dead=2E Is there any solution?