Subject Re: [IB-Architect] Synchronisation between classic architecture server processes
Author Jan Mikkelsen
Ann Harrison <harrison@...> writes:
>Yes. There is a lock manager, variously implemented in shared memory or
>as a separate process, depending on the platform. It handles short term
>page locks and a variety of other locks - like the shared lock that each
>transaction gets on tables it reads, locks transactions take out on their
>own transaction id, etc.


Thanks for the reply.

Assuming shared memory:

Presumably any server process connects to the shared memory and acquires and
releases locks. Given that a server process can die at any time for any
reason, how are locks for dead processes released?

Off the top of my head, I can imagine a scheme where each server process
records its process ID in the shared locking structure. If another server
process gets contention on a particular lock, it checks to see whether the
process is alive, and if not can clean up. Is that what happens?

Assuming a locking process:

I guess the server processes just communicate using a TCP circuit, and the
locking process is responsible for releasing the locks of processes that
die.

On lock types:

You've mentioned page locks, table locks and transaction locks. Presumably
transaction locks are used for distinguishing between a dead and an in
progress transaction.

Other than these, what locks are there?

Are the only locking modes shared and exclusive?

When can we get the source code, so we don't have to ask so many questions?
:-)

Thanks,

Jan Mikkelsen
janm@...