On Fri, May 3, 2024 at 8:00 PM Siddharth Jain <siddh...@gmail.com> wrote:
> I am trying to sharpen my understanding of databases. Let's say there is > an operation foo as part of the public API that internally translates to > more than 1 operation - I am sure there are examples like this in postgres. > So to do foo we have to do following in order in all or none fashion: > > 1. Step 1 > 2. Step 2 > 3. Step 3 > > The way I understand this is that if there is a failure in-between, we > start undoing and reverting the previous operations one by one. But what if > there is a failure and we are not able to revert an operation. How is that > situation handled? e.g., something failed when we tried to do Step 3. now > we revert Step 2 and succeed. but when we try to revert step 1 we fail. > what happens now? To me, it seems its impossible to guarantee true > atomicity in general. > > S. >