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?