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 1sPLsb-004C6P-8j for pgsql-admin@arkaria.postgresql.org; Thu, 04 Jul 2024 12:48:05 +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 1sPLsZ-00HI1c-9U for pgsql-admin@arkaria.postgresql.org; Thu, 04 Jul 2024 12:48:03 +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 1sPLsY-00HI1U-RX for pgsql-admin@lists.postgresql.org; Thu, 04 Jul 2024 12:48:03 +0000 Received: from mailout.easymail.ca ([64.68.200.34]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sPLsX-000N28-23 for pgsql-admin@lists.postgresql.org; Thu, 04 Jul 2024 12:48:02 +0000 Received: from localhost (localhost [127.0.0.1]) by mailout.easymail.ca (Postfix) with ESMTP id CB2D86136C; Thu, 4 Jul 2024 12:47:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elevated-dev.com; s=easymail; t=1720097278; bh=1r9saGU6HNA5SHOsvRxvGqmpKnifC7xC5GEkNkFIGE4=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=kDcQegfv5LOpxJf46iz99BZ5iyJgxV/TC71K/IbKeHEibvUIAjYTxQ9Yk2Vv+h+t9 yYILVy7gdmQ9HT/VRYtPZujJkvgH6fUsm00uNtogf0xXVQljV5v90xePPcNK6ahumr y0LbhbEqdc2tIMPoDf4nU1ORpFYedShuR40qk+9wOODBuH8iC2MaQ4qaA/tT1hpXnb fs86KhfGg4VAS4MHhmUgQyCcVm1aJ5xZGbdQ7YM/59bbiPVg9tZc8wgnjCnAa7H3d7 +bXV7eTSV462jHlq2qjKuV1wuiQgbIcq6WOG4Om+oQpGU0DeuQrJ+QePY0umkstAzp QdL+XyvVzicZA== X-Virus-Scanned: Debian amavisd-new at emo09-pco.easydns.vpn Received: from mailout.easymail.ca ([127.0.0.1]) by localhost (emo09-pco.easydns.vpn [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qYWGPdT9jC2f; Thu, 4 Jul 2024 12:47:58 +0000 (UTC) Received: from smtpclient.apple (unknown [165.140.184.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mailout.easymail.ca (Postfix) with ESMTPSA id 0EE0160EBD; Thu, 4 Jul 2024 12:47:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elevated-dev.com; s=easymail; t=1720097278; bh=1r9saGU6HNA5SHOsvRxvGqmpKnifC7xC5GEkNkFIGE4=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=kDcQegfv5LOpxJf46iz99BZ5iyJgxV/TC71K/IbKeHEibvUIAjYTxQ9Yk2Vv+h+t9 yYILVy7gdmQ9HT/VRYtPZujJkvgH6fUsm00uNtogf0xXVQljV5v90xePPcNK6ahumr y0LbhbEqdc2tIMPoDf4nU1ORpFYedShuR40qk+9wOODBuH8iC2MaQ4qaA/tT1hpXnb fs86KhfGg4VAS4MHhmUgQyCcVm1aJ5xZGbdQ7YM/59bbiPVg9tZc8wgnjCnAa7H3d7 +bXV7eTSV462jHlq2qjKuV1wuiQgbIcq6WOG4Om+oQpGU0DeuQrJ+QePY0umkstAzp QdL+XyvVzicZA== Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.600.62\)) Subject: Re: Connection pooler / LDAP auth / Load Balancing on read-only queries From: Scott Ribe In-Reply-To: <5b9df232-3c9e-ad5c-ffde-7d6b07452041@cloud.gatewaynet.com> Date: Thu, 4 Jul 2024 06:47:47 -0600 Cc: pgsql-admin@lists.postgresql.org Content-Transfer-Encoding: quoted-printable Message-Id: <07B2F39D-E2A2-45C2-939D-85EF980176B1@elevated-dev.com> References: <1745e084-a408-445f-97e3-44e29977ccc5@cloud.gatewaynet.com> <5b9df232-3c9e-ad5c-ffde-7d6b07452041@cloud.gatewaynet.com> To: Achilleas Mantzios - cloud X-Mailer: Apple Mail (2.3774.600.62) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk > Hello >=20 > pgpool does a great job at that. pgpool does load balancing to the = first statement that is considered a write statement, for that point on, = the rest of the transaction is routed to the primary. >=20 > But the question here is how to achieve all of the aforementioned = features, of all those great tools combined, or ideally combined in one. AFAIK, pgpool still doesn't do what I'd consider true pooling, that is = MxN multiplexing of connections. (Every client connection has a = connection from pgpool -> server, but the server connections become = available for resuse when clients disconnect.) And to me, the mechanism for routing queries in a transaction is highly = suspect, as the initial reads vs later writes could potentially be using = different snapshots of the data. (There is a safeguard there, involving = looking at replication delay, but that's not a transactional guarantee, = just "here's how out of date the replica can be to get read queries".)=