[prev in list] [next in list] [prev in thread] [next in thread] 

List:       postgresql-general
Subject:    Re: Will using subtransactions will come back to bite me?
From:       Laurenz Albe <laurenz.albe () cybertec ! at>
Date:       2022-03-28 15:31:57
Message-ID: 0a977daf9fe13753b0d97e383804a4518ee6414d.camel () cybertec ! at
[Download RAW message or body]

On Mon, 2022-03-28 at 01:49 -0700, Kannan Goundan wrote:
> I'm a backend web developer working on a pretty typical Postgres-backed web \
> application. Each HTTP request is handled within a "SERIALIZABLE" transaction.
> 
> For some requests, we need to perform a sub-operation (which might fail) and record \
> the success/failure in the DB. Subtransactions offer a simple way to do that -- the \
> overall request is still wrapped in a transaction, and the sub-operation would be \
> wrapped a subtransaction. 
> But a few things I've read online have made me wary of subtransactions:
> 1. https://postgres.ai/blog/20210831-postgresql-subtransactions-considered-harmful
> 2. https://about.gitlab.com/blog/2021/09/29/why-we-spent-the-last-month-eliminating-postgresql-subtransactions/
>  3. https://buttondown.email/nelhage/archive/notes-on-some-postgresql-implementation-details/
>  
> But those articles seem to describe a use case that's more demanding than   mine. \
> They talk about deeply-nested subtransactions, whereas I will only have 1 (maybe 2) \
> levels of nesting within the top-level transaction. 
> I'd appreciate any pointers on how to determine whether a particular use of \
> subtransactions will run into the issues described in the linked articles.
> 
> (I'm currently using Postgres 13.5 on GCP. Upgrading would require some effort, but \
> I'm open to it!)

Typically, if you have only a few subtransactions per transaction, you are fine.

The second article also describes a different problem with replication and \
subtransactions. You might want to check your use case if you hit that problem.

Yours,
Laurenz Albe
-- 
Cybertec | https://www.cybertec-postgresql.com


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic