Re: Autonomous Transaction is back
От | Ashutosh Bapat |
---|---|
Тема | Re: Autonomous Transaction is back |
Дата | |
Msg-id | CAFjFpRe5dx1aWTEin9zgAB_pkFFa9ciSUNSDRvObEQiF8Vd4ZA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Autonomous Transaction is back (Josh Berkus <josh@agliodbs.com>) |
Список | pgsql-hackers |
<div dir="ltr"><br /><div class="gmail_extra"><br /><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:00 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br /></span>Ah, you're missing how commitsin ATX are expected to work. Let me<br /> illustrate:<br /><br /> X (<br /> Data write A1<br /> call Y(<br/> Start ATX<br /> Data write B1<br /> Commit ATX<br /> )<br /> Data write A2<br /> Exception<br /> )<br /><br /> In this workflow, B1 would be committed and persistent. Neither A1 nor<br /> A2 would becommitted, or visible to other users. Depending on what<br /> implementation we end up with, A1 might not even be visibleto Y().<br /><br /></blockquote></div><br /></div><div class="gmail_extra">A1 should never be visible to Y(), elsewe will end up with inconsistencies. E.g.<br /><br /></div><div class="gmail_extra">A1 is a primary key and B1 writesa foreign key referencing A1. Commit ATX, will not complain as it sees A1, but in case X rolls back, we may have B1referencing nothing.<br /><br /></div><div class="gmail_extra">Am I missing something?<br clear="all" /></div><div class="gmail_extra"><br/>-- <br /><div class="gmail_signature"><div dir="ltr">Best Wishes,<br />Ashutosh Bapat<br />EnterpriseDBCorporation<br />The Postgres Database Company<br /></div></div></div></div>
В списке pgsql-hackers по дате отправления: