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.96) (envelope-from ) id 1wk3n6-000RfR-0U for pgsql-general@arkaria.postgresql.org; Wed, 15 Jul 2026 17:53:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wk3n3-008gUj-1d for pgsql-general@arkaria.postgresql.org; Wed, 15 Jul 2026 17:53:01 +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.96) (envelope-from ) id 1wk3n3-008gUa-0Q for pgsql-general@lists.postgresql.org; Wed, 15 Jul 2026 17:53:01 +0000 Received: from smtp72.iad3a.emailsrvr.com ([173.203.187.72]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wk3n0-00000000MXk-2ZHc for pgsql-general@lists.postgresql.org; Wed, 15 Jul 2026 17:53:00 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=g001.emailsrvr.com; s=feedback; t=1784137978; bh=jvIZ8mOqeCTGGz3x3RDUUow7lH0nk7S6zKzKfrYxwpA=; h=Subject:From:Date:To:From; b=Xk3QM/HFVzG201xRx14BTGcM1Jkpogizc1xNNuhjaDJkaGHS5Lb2xGUdZ4G8OFUIe l24menu7UbM4mi8i89npR6b9pQ/BcX9iRc1mpqmwh9MLQ20TqY757pwC2ovOQgqAyu YKDWNzm9kL5OstsnyCA51zriob7jGpxwRIzICN/c= X-Auth-ID: xof@thebuild.com Received: by smtp26.relay.iad3a.emailsrvr.com (Authenticated sender: xof-AT-thebuild.com) with ESMTPSA id 1ACB35989; Wed, 15 Jul 2026 13:52:58 -0400 (EDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3776.700.51.11.12\)) Subject: Re: Transaction Isolation level for ERP software From: Christophe Pettus In-Reply-To: Date: Wed, 15 Jul 2026 10:52:57 -0700 Cc: pgsql-general@lists.postgresql.org Content-Transfer-Encoding: quoted-printable Message-Id: References: To: Mihir Kandoi X-Mailer: Apple Mail (2.3776.700.51.11.12) X-Classification-ID: 4e98c01a-70b0-4be7-b70d-4ec2c0743c9d-1-1 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk > On Jul 15, 2026, at 10:34, Mihir Kandoi wrote: > =E2=80=A2 Is READ COMMITTED actually a better solution or should = we go with retrying transactions? There's nothing specific about ERP platforms regarding the transaction = isolation mode, and READ COMMITTED isn't "better" than REPEATABLE READ = or vice versa. It's a matter of what semantics you want for = transactions: do you want a persistent snapshot that does not change (in = from the perspective of the session with the open transaction) between = statements, or can your application tolerate that? In general, you want to use the weakest transaction isolation mode that = gives you the semantics that you want. If your application is written = to expect that the snapshot of the database does not change during the = course of the transaction, you'll need REPEATABLE READ, and then need to = come up with a solution for the serialization errors that you receive. The source of serialization failures in REPEATABLE READ is two sessions = attempting to update the same rows. That's probably the issue you = should consider tracking down, since that has plenty of other potential = problems (lock waits, deadlocks) apart from REPEATABLE READ.=