Ability to 'fork' a running transaction?

From: Alex Besogonov <alex(dot)besogonov(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Ability to 'fork' a running transaction?
Date: 2010-01-31 00:19:13
Message-ID: f9ca530f1001301619p6eb6bf75y6b0b5e5b1e6cb80c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I'm writing a program which needs to do a lot of (read only)
processing on a database. The program works on a SMP system with 16
CPUs, so it's natural to try to make it use all of them.

However, here lies the problem: I need to use SERIALIZABLE transaction
isolation level, and AFAIK it's not possible to make several database
connections to share the same exact view of the database.

So, is there a way to somehow stop all mutating operations? I want to
do something like:

STOP_MUTATING_OPERATIONS;
for(int f=0;f<10;++f)
{
START_CONNECTION(f);
SET_TO_SERIALIZABLE(f);
}
START_MUTATING_OPERATIONS();

for(int f=0;f<10;++f)
DO_WORK_IN_CONNECTION(f);

Or is there a better way?

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Craig Ringer 2010-01-31 05:25:42 Re: Ability to 'fork' a running transaction?
Previous Message Jasen Betts 2010-01-30 09:52:16 Re: Changing FS when full