Re: Question regarding how databases support atomicity

Поиск
Список
Период
Сортировка
От David G. Johnston
Тема Re: Question regarding how databases support atomicity
Дата
Msg-id CAKFQuwb2MtE02QgMQ3vvLOj7bvGMar6qwnigCBBaYLBKsdk3xg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Question regarding how databases support atomicity  (Siddharth Jain <siddhsql@gmail.com>)
Ответы Re: Question regarding how databases support atomicity  ("David G. Johnston" <david.g.johnston@gmail.com>)
Re: Question regarding how databases support atomicity  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
On Friday, May 3, 2024, Siddharth Jain <siddhsql@gmail.com> wrote:


On Fri, May 3, 2024 at 8:00 PM Siddharth Jain <siddhsql@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.

Not in PostgreSQL.  All work performed is considered provisional until a commit succeeds.  At which point all provisional work, which had been tagged with the same transaction identifier, becomes reality to the rest of the system, by virtue of marking the transaction live.  If the commit never happens, either because of error, rollback, or session end, the transaction ends up being left unalive and eventually is cleaned up.

You need to ensure a “begin” happens before Step 1 and a “commit” after Step 3.

David J.

В списке pgsql-general по дате отправления:

Предыдущее
От: Siddharth Jain
Дата:
Сообщение: Re: Question regarding how databases support atomicity
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: Question regarding how databases support atomicity