Re: What happens if I create new threads from within a postgresql function?

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Seref Arikan <serefarikan(at)kurumsalteknoloji(dot)com>
Cc: PG-General Mailing List <pgsql-general(at)postgresql(dot)org>
Subject: Re: What happens if I create new threads from within a postgresql function?
Date: 2013-02-18 14:36:04
Message-ID: 20130218143604.GJ12029@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com

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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Seref Arikan 2013-02-18 14:51:13 Re: What happens if I create new threads from within a postgresql function?
Previous Message Seref Arikan 2013-02-18 11:10:51 What happens if I create new threads from within a postgresql function?