From: | "Francisco Figueiredo Jr(dot)" <francisco(at)npgsql(dot)org> |
---|---|
To: | Randy Ficker <randyficker(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org, Marti Raudsepp <marti(at)juffo(dot)org> |
Subject: | Re: 9.1 causing "out of shared memory" error and higher serialization conflicts |
Date: | 2012-03-09 18:36:13 |
Message-ID: | CACUQdMapS+ncPxoMcydROFYBCVi1ZmQUGeoMTfDKKdXprvHQ6A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Thanks for the heads up.
I'll fix that in Npgsql so it sends the correct isolation level when
running on 9.1+
Sent from my Android phone
On Mar 9, 2012 3:27 PM, "Randy Ficker" <randyficker(at)gmail(dot)com> wrote:
> Hey Marti,
>
> I almost replied that yes, I was 100% sure, since I know my code requests
> the REPEATABLE READ level. However, I figured before I replied, I should
> double-check the SQL statements that were being sent to Postgres.
>
> Then I found this gem in Npgsql:
>
> if (isolation == IsolationLevel.RepeatableRead || isolation ==
> IsolationLevel.Serializable || isolation == IsolationLevel.Snapshot)
> {
> commandText.Append("SERIALIZABLE");
> }
>
> *headslap*. I know this code is fine for 8, but I still would not have
> expected this code to exist in the driver itself instead of just letting
> Postgres do the switch. I guess Npgsql says right on their front page
> "Works with Postgresql 7.x and 8.x" so I shouldn't have assumed it'd behave
> correctly with 9.
>
> So you're right, it turns out I was using SERIALIZABLE after all. I'm
> going to fix this right away. Thanks for the reply!
>
> -----Original Message-----
> From: Marti Raudsepp [mailto:marti(at)juffo(dot)org]
> Sent: Friday, March 09, 2012 9:41 AM
> To: Randy Ficker
> Cc: pgsql-general(at)postgresql(dot)org
> Subject: Re: [GENERAL] 9.1 causing "out of shared memory" error and higher
> serialization conflicts
>
> On Fri, Mar 9, 2012 at 19:16, Randy Ficker <randyficker(at)gmail(dot)com> wrote:
> > Most writing transactions are using the REPEATABLE READ isolation
> > level (the SERIALIZABLE level is not used at all).
>
> Are you 100% sure about this? A major thing that changed in 9.1 was
> implementation for proper SERIALIZABLE isolation, which could indeed cause
> the sort of errors you described. Previously, asking for SERIALIZABLE level
> gave you REPEATABLE READ.
>
> As far as I can tell, the max_pred_locks_per_transaction setting is
> irrelevant for isolation levels lower than SERIALIZABLE.
>
> What's your default_transaction_isolation set to?
>
> Regards,
> Marti
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alexander Reichstadt | 2012-03-09 19:47:03 | Question on datatypes returned for "select oid, typname from pg_type" |
Previous Message | Randy Ficker | 2012-03-09 18:26:08 | Re: 9.1 causing "out of shared memory" error and higher serialization conflicts |