| From: | "Merlin Moncure" <mmoncure(at)gmail(dot)com> |
|---|---|
| To: | "Adam Rich" <adam(dot)r(at)indigodynamic(dot)com> |
| Cc: | "Erik Jones" <erik(at)myemma(dot)com>, andy <andy(at)squeakycode(dot)net>, pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Locking & concurrency - best practices |
| Date: | 2008-01-15 04:08:58 |
| Message-ID: | b42b73150801142008u736b14ebr6deb74cf2517c45c@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On Jan 14, 2008 5:57 PM, Adam Rich <adam(dot)r(at)indigodynamic(dot)com> wrote:
> >
> > From what I can tell, this kind of roll-your-own application level
> > locking system is exactly what advisory locks are for. Search the
> > archives for the last couple of weeks as I remember someone posting
> > some really helpful functions to assist in using advisory locks.
> >
> > Erik Jones
>
> Yes & No... it depends on the lifetime of the locks you need. The new
> advisory locks in postgres only live for the duration of your session.
> The ones Andy describes will live past session end, connection end,
> even through database restarts. And if you're using replication or
> log shipping, the locks will be propagated to partner databases
> as well.
>
> If you need your locks to live past session end, the advisory locks
> won't help you.
That's not really a lock (although it behaves like one). That's
simply a field in a table that says 'If i'm this do that otherwise do
that'. I don't know if there's a formal definition of locks, so I'm
loosely going to define them as things that protect access to the data
that are not in the data.
merlin
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Adam Rich | 2008-01-15 05:03:05 | Re: Locking & concurrency - best practices |
| Previous Message | Merlin Moncure | 2008-01-15 04:06:23 | Re: Locking & concurrency - best practices |