Re: Q about transactions
От | Ben-Nes Michael |
---|---|
Тема | Re: Q about transactions |
Дата | |
Msg-id | 00b901c30a2e$6d0b5b20$aa0f5ac2@canaan.co.il обсуждение исходный текст |
Ответ на | Q about transactions ("Ben-Nes Michael" <miki@canaan.co.il>) |
Список | pgsql-general |
Hi Again, I thought about it a while and I still filling somewhat vague. If in one transaction I start Serial mode and the other I start later in Read Committed mode, what will happen if the Serializable transaction will change some of the rows that the Read Committed is relay on ? Thanks in Advance. > "Ben-Nes Michael" <miki@canaan.co.il> writes: > > When I want to insert a branch to the tree I need: > > 1. select lft, rgt from the table to find where to insert > > 2. using update I open a gap in the tree ( offset all the lft, rgt above the > > location by two ) > > 3. using insert I add a new branch. > > > so "select for updates" seem inappropriate as I select only one row as I > > understood it lock only this row. > > Read Committed is also bad as if the second transaction will use select > > before the first transaction ran the update the select will be useless. > > so it seems that Serializable isolation is the solution, or am I wrong ? > > Yeah. Use serializable mode, and be prepared to cope with "can't > serialize" errors (a retry loop around the whole transaction is the > standard answer to that). > > regards, tom lane > -------------------------- Canaan Surfing Ltd. Internet Service Providers Ben-Nes Michael - Manager Tel: 972-4-6991122 Fax: 972-4-6990098 http://sites.canaan.co.il --------------------------
В списке pgsql-general по дате отправления: