Markus Wanner <[EMAIL PROTECTED]> wrote:

> ITAGAKI Takahiro wrote:
> > Are there any better idea to share one socket connection between
> > backends (and bgwriter)?
>
> I fear I'm repeating myself, but I've had the same problem for 
> Postgres-R and solved it with an internal message passing infrastructure 
> which I've simply called imessages. It requires only standard Postgres 
> shared memory, signals and locking and should thus be pretty portable.

Imessage serves as a useful reference, but it is one of the detail parts
of the issue. I can break down the issue into three parts:

  1. Is process-switching approach the best way to share one socket?
        Both Postgres-R and the log-shipping prototype use the approach now.
        Can I think there is no objection here?

  2. If 1 is reasonable, how should we add a new WAL sender process?
        Just add a new process using a core-patch?
        Merge into WAL writer?
        Consider framework to add any of user-defined auxiliary process?

  3. If 1 is reasonable, what should we use for the process-switching
     primitive?
        Postgres-R uses signals and locking and the log-shipping prototype
        uses multi-threads and POSIX message queues now.

Signals and locking is possible choice for 3, but I want to use better
approach if any. Faster is always better.

I guess we could invent a new semaphore-like primitive at the same layer
as LWLocks using spinlock and PGPROC directly...

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center



-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to