From: | zhong ming wu <mr(dot)z(dot)m(dot)wu(at)gmail(dot)com> |
---|---|
To: | pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Non-reentrant plperlu function & concurrent access |
Date: | 2010-08-17 10:35:27 |
Message-ID: | AANLkTim3ZSzvw9WJ5Htr31g3wM=yvTv33DrqL1=Y_RZx@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Tue, Aug 17, 2010 at 4:15 AM, Philippe Lang
<philippe(dot)lang(at)attiksystem(dot)ch> wrote:
>> Hi,
>>
>> I have a non-reentrant plperlu function, which does no database
>> modification. It basically stores input data into a file, calls a unix
>> shell command, and reads the result back from another file.
>>
>> I don't really care about database isolation here, phantom reads and
>> such. It is not likely to be a problem. What could be a problem, is if
>> another call to this function is fired while another one is running.
>>
>> In this specific case, I could solve the problem by generating random
>> input and ouput filenames, but I would prefer a more general solution,
>> like using some sort of mutex for the function. What is the best way to
>> do that under Postgresql? Although not designed for this (if I
>> understand correctly), would a "serializable" isolation level help
>> here?
>
> I answer to my own post, sorry...
>
> Maybe Postgresql functions "pg_try_advisory_lock_shared" and "pg_advisory_unlock_shared" are the solution?
>
There is perl self locking mechanism using flock on __DATA__ . Have
you tried that? google is your friend.
From | Date | Subject | |
---|---|---|---|
Next Message | Boszormenyi Zoltan | 2010-08-17 12:29:16 | Re: How to refer to computed columns from other computed columns? |
Previous Message | Atul.Goel | 2010-08-17 08:54:46 | Re: good exception handling archiecutre |