Re: how to write/setup a C trigger function in a background worker

From: Bill Moran <wmoran(at)potentialtech(dot)com>
To: jacques klein <jacques(dot)klei(at)googlemail(dot)com>
Cc: David Fetter <david(at)fetter(dot)org>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: how to write/setup a C trigger function in a background worker
Date: 2015-08-19 20:54:22
Message-ID: 20150819165422.459fc78ebcd86046242b9d3b@potentialtech.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, 19 Aug 2015 19:45:47 +0200
jacques klein <jacques(dot)klei(at)googlemail(dot)com> wrote:

> Well, sorry David, I don't understand what you mean,
>
> let me explain what I want to do: in short, IPC between "background
> workers".
>
> I am trying to transform my app. from a multi-threaded C SQL-client into
> some "background workers", execution speed beeing the goal (avoid
> network io).
> Worker start/stopping is nicely solved by server start/stop, but I have
> also to do some messaging/notifying between my worker processes, and
> would like to use a Postgres based solution instead of the usual unix or
> network ipc, or course by avoiding polling (tables acting as message
> queues).

I think what David is saying, and what I would suggest, is the
following:

* It's not possible to have a trigger execute in the background
* Create a background job that runs perpetually and listens for
notification that it has work to do (i.e. it sleeps until notified)
* Notify the job from the trigger

> On Wed, 2015-08-19 at 10:01 -0700, David Fetter wrote:
> > On Wed, Aug 19, 2015 at 05:37:31PM +0200, jacques klein wrote:
> > > I would like to execute a trigger function (written in C) in one of my
> > > background workers.
> > >
> > > Didn't figure out how to do that not even if it's possible.
> >
> > You can write your trigger function in such a way as not to do the
> > usual check for trigger context, but it might be better to write two
> > functions, one with the trigger stuff in it, the other, which it
> > calls, for whatever action you actually want to trigger, and call that
> > second in your background worker.
> >
> > Cheers,
> > David.
>
>
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers

--
Bill Moran <wmoran(at)potentialtech(dot)com>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2015-08-19 21:17:55 Re: how to write/setup a C trigger function in a background worker
Previous Message Tom Lane 2015-08-19 20:32:37 Re: Our trial to TPC-DS but optimizer made unreasonable plan