Re: Anyone know why PostgreSQL doesn't support 2 phase execution?

Поиск
Список
Период
Сортировка
От Ron Peacetree
Тема Re: Anyone know why PostgreSQL doesn't support 2 phase execution?
Дата
Msg-id dUjka.12809$ey1.1104214@newsread1.prod.itd.earthlink.net
обсуждение исходный текст
Ответ на Re: Anyone know why PostgreSQL doesn't support 2 phase execution?  (Rod Taylor <rbt@rbt.ca>)
Ответы Re: Anyone know why PostgreSQL doesn't support 2 phase
Список pgsql-hackers
"Rod Taylor" <rbt@rbt.ca> wrote in message
news:1049735504.40144.35.camel@jester...
> --=-v98gp7DTtZFJa7ee6YMf
> Content-Type: text/plain
> Content-Transfer-Encoding: quoted-printable
>
> On Sat, 2003-04-05 at 11:35, Ron Peacetree wrote:
> > ...and what kind of performance hit we take (and under what
> > circumstances) for not having it?
>
> Do you mean 2-phase commits?  If so, how do you take a performance
hit
> from *not* having it?  PostgreSQL doesn't have it (prepare & forget
> phases)) simply because nobody has completed and submitted an
> implementation.  Satoshi is working on the problem.
>
> If not, what do you mean by 2 phase execution?
>
The performance hit as in "in comparison to DB's that =do= have two
phase execution (and commit for that matter), just how much slower is
PostgreSQL?"

Two phase execution and two phase commit are two different concepts.
Two phase execution splits the execution of queries explicitly into a
"do all the book keeping and setup stuff before execution" phase and
an actual execution phase.  The benefit is that if you are going to
say, step through a largish table in chunks, doing the same query on
each chunk, two phase execution allows the DB to do everything (syntax
checking, query planning, blah, blah) except the actual execution
=once= and reuse it for each subsequent chunk.  Think of it as a close
cousin to loop unrolling.  It also helps parallel performance since
you can hand the "blessed" set up query plan to multiple processes and
those processes can focus on just getting work done.

The lack of two phase =commit= is a also a potential performance hit
in comparison to DB products that have it, but the more important
issue there is that there are SMP/distributed apps that really can't
work acceptably unless a DB product has two phase commit.

The three "biggies" in DB land, SQL Server, Oracle, and DB2, have both
features.  I suspect that PostgreSQL will need to as well...



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

Предыдущее
От: "Ron Peacetree"
Дата:
Сообщение: Re: No merge sort?
Следующее
От: "Brian E. Pangburn"
Дата:
Сообщение: A funny story about horology regression test failures...