Re: What happens if I create new threads from within a postgresql function? - Mailing list pgsql-general

From Bruce Momjian
Subject Re: What happens if I create new threads from within a postgresql function?
Date
Msg-id 20130218143604.GJ12029@momjian.us
Whole thread Raw
In response to What happens if I create new threads from within a postgresql function?  (Seref Arikan <serefarikan@kurumsalteknoloji.com>)
Responses Re: What happens if I create new threads from within a postgresql function?
List pgsql-general
On Mon, Feb 18, 2013 at 11:10:51AM +0000, Seref Arikan wrote:
> Greetings,
> What would happen if I create multiple threads from within a postgresql
> function written in C?
> I have the opportunity to do parallel processing on binary data, and I need to
> create multiple threads to do that.
> If I can ensure that all my threads complete their work before I exit my
> function, would this cause any trouble ?
> I am aware of postgresql's single threaded nature when executing queries, but
> is this a limitation for custom multi threaded code use in C based functions?
> I can't see any problems other than my custom spawn threads living beyond my
> function's execution and memory/resource allocation issues, but if I can handle
> them, should not I be safe?
>
> I believe I've seen someone applying a similar principle to use GPUs with
> postgresql, and I'm quite interested in giving this a try, unless I'm missing
> something.

I think it would be fine.  I expect to be researching this soon myself:

     http://wiki.postgresql.org/wiki/Parallel_Query_Execution

Let me know how it works out.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +

pgsql-general by date:

Previous
From: Seref Arikan
Date:
Subject: What happens if I create new threads from within a postgresql function?
Next
From: Seref Arikan
Date:
Subject: Re: What happens if I create new threads from within a postgresql function?