Re: [PATCH 8/8] Introduce wal decoding via catalog timetravel
От | Simon Riggs |
---|---|
Тема | Re: [PATCH 8/8] Introduce wal decoding via catalog timetravel |
Дата | |
Msg-id | CA+U5nM+Y_v-GUMCcoLdonR1rMWmS9JWZUAxDJtjsSDnVaxWgiQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [PATCH 8/8] Introduce wal decoding via catalog timetravel (Greg Stark <stark@mit.edu>) |
Список | pgsql-hackers |
On 11 October 2012 03:16, Greg Stark <stark@mit.edu> wrote: > On Thu, Oct 11, 2012 at 2:40 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >>> I think I've mentioned it before, but in the interest of not being >>> seen to critique the bikeshed only after it's been painted: this >>> design gives up something very important that exists in our current >>> built-in replication solution, namely pipelining. >> >> Isn't there an even more serious problem, namely that this assumes >> *all* transactions are serializable? What happens when they aren't? >> Or even just that the effective commit order is not XID order? > > Firstly, I haven't read the code but I'm confident it doesn't make the > elementary error of assuming commit order == xid order. I assume it's > applying the reassembled transactions in commit order. > > I don't think it assumes the transactions are serializable because > it's only concerned with writes, not reads. So the transaction it's > replaying may or may not have been able to view the data written by > other transactions that commited earlier but it doesn't matter when > trying to reproduce the effects using constants. The data written by > this transaction is either written or not when the commit happens and > it's all written or not at that time. Even in non-serializable mode > updates take row locks and nobody can see the data or modify it until > the transaction commits. This uses Commit Serializability, which is valid, as you say. -- Simon Riggs http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления: