Skip site navigation (1) Skip section navigation (2)

Re: Parallel (concurrent) inserts?

From: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
To: Ivan Voras <ivoras(at)freebsd(dot)org>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: Parallel (concurrent) inserts?
Date: 2012-05-25 23:36:48
Message-ID: CAMkU=1wNY0wUvRTR7w+0r81sVmEZOyKJMZU9Xy0xaumixxbr0Q@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-performance
On Fri, May 25, 2012 at 3:04 PM, Ivan Voras <ivoras(at)freebsd(dot)org> wrote:
> Hello,
>
> I'm wondering if there is ia document describing which guarantees (if
> any) PostgreSQL makes about concurrency for various operations? Speaking
> in general (i.e. IO can handle it, number of CPU cores and client
> threads is optimal), are fully concurrent operations (independant and
> non-blocking) possible for:

By "fully concurrent" do you mean that there is no detectable
sub-linear scaling at all?  I'm pretty sure that no such guarantees
can be made.

> 1) An unindexed table?

For concurrent bulk loads, there was severe contention on generating
WAL between concurrent bulk loaders.  That is greatly improved in the
upcoming 9.2 release.

> 2) A table with 1+ ordinary (default btree) indexes? (are there
> constraints on the structure and number of indexes?)

This will be limited by contention for generating WAL.  (Unless
something else limits it first)

> 3) A table with 1+ unique indexes?

If more than one transaction attempts to insert the same value, one
has to block until the other either commits or rollbacks.

> 4) A table with other objects on it (foreign keys, check constraints, etc.)?

Same as above.  If they try to do conflicting things, they don't
continue operating concurrently.

Cheers,

Jeff

In response to

Responses

pgsql-performance by date

Next:From: Ivan VorasDate: 2012-05-25 23:56:57
Subject: Re: Parallel (concurrent) inserts?
Previous:From: Josh BerkusDate: 2012-05-25 23:13:54
Subject: Re: Parallel (concurrent) inserts?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group