From: | "Tomas Vondra" <tv(at)fuzzy(dot)cz> |
---|---|
To: | "Marc Cousin" <cousinmarc(at)gmail(dot)com> |
Cc: | "Merlin Moncure" <mmoncure(at)gmail(dot)com>, "Simon Riggs" <simon(at)2ndquadrant(dot)com>, "Craig Ringer" <ringerc(at)ringerc(dot)id(dot)au>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Hope for a new PostgreSQL era? |
Date: | 2011-12-08 17:02:51 |
Message-ID: | e41766f40d06c441651cd5bc94826145.squirrel@sq.gransy.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 8 Prosinec 2011, 17:11, Marc Cousin wrote:
> Le Thu, 8 Dec 2011 09:29:28 -0600,
>> >> > - admission control, queuing and resource limiting to optimally
>> >> > load a machine. Some limited level is possible with external
>> >> > pooling, but only by limiting concurrent workers.
>> >
>> > Oracle has natively two ways of handling inbound connections:
>> > - Dedicated, which is very similar to the PostgreSQL way of
>> > accepting connections: accept(), fork() and so on
>> > - Shared, which is based on processes listening and handling the
>> > connections (called dispatchers) and processes doing the real work
>> > (called workers, obviously). All of this works internally with
>> > some sort of queuing and storing results in shared memory (I don't
>> > remember the details of it)
>> >
>> > The advantage of this second architecture being of course that you
>> > can't have more than N workers hitting your database
>> > simultaneously. So it's easier to keep the load on the server to a
>> > reasonable value.
>>
>> you have a couple of very good options to achieve the same in postgres
>> -- pgbouncer, pgpool.
>>
>
> I wish it was the same (I use and like both pgbouncer and pgpool too,
> and they do a good job, I'm not arguing on that). But unfortunately it
> isn't: you still have the notion of session for each connected client
> in Oracle when using the shared servers model.
True, it is not exactly the same, it's similar. I don't think PostgreSQL
will ever provide 'shared backends' the way Oracle does - it would require
significant code change. Most of the benefits can be achieved by using a
connection pool without the added complexity.
> It means you keep your session variables, your prepared statements,
> your running transaction, etc… in each individual session while having
> the multiplexing equivalent of a 'statement level' from pgbouncer.
Yes. But if you expect that PostgreSQL will mimic Oracle architecture,
then you're mistaken. It's simply a different solution with different
architecture, and that means you may need to use different application
design sometimes.
Tomas
From | Date | Subject | |
---|---|---|---|
Next Message | Marc Cousin | 2011-12-08 17:06:46 | Re: Hope for a new PostgreSQL era? |
Previous Message | Marc Cousin | 2011-12-08 17:00:23 | Re: Hope for a new PostgreSQL era? |