On Sep 22, 2006, at 14:11 , Jim C. Nasby wrote:

On Fri, Sep 22, 2006 at 01:21:57PM -0400, Merlin Moncure wrote:
On 9/22/06, Jim C. Nasby <[EMAIL PROTECTED]> wrote:
On Fri, Sep 22, 2006 at 12:56:37PM -0400, Merlin Moncure wrote:
the whole point about advisory locks is that the provided lock space
is unmanaged. for example, in the ISAM system I wrote which hooked
into the acucobol virtual file system interface, I used  a global
sequence for row level pessimistic locking but reserved the 48th bit for table level locks. This system was extremely effective. on the current system I'm working on I use them to lock sequence oid's plus a high bit indicator for what i am doing. in short, advisory locks are
application-defined in concept.

Yes, but if you get two pieces of code written by different people using them in the same database, you can get hosed. As PostgreSQL becomes more popular and more people start developing software for it, this is more
likely to occur.

imo, that is no more or less likely than having two pieces of code
store the same table in the same database.  I think what you are
describing would only be a concern if the locks were shared across
databases, however this is not the case.  the purpose of advisory
locks is to be 'appplication-defined'. how the application is written
is not part of that concept.  we are simply granting the ability to
create a mutex with a number for a name, that is all.

Except you can put tables (and pretty much all your other objects) in a schema, one that's presumably named after your application. That greatly
removes the odds of conficts.

Indeed. In our development environment, we store development, integration, and testing schemas in the same database. This makes it trivial to move testing data to development, for example.

If I want to use these locks, it seems I will have to hard-code some offset into each app or hash the schema name and use that as an offset :( In any case, I can't imagine the "wtf?" nightmares an accidental collision would induce.


---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to