Subject | RE: [IB-Architect] Re: Events Improvement |
---|---|
Author | Dmitry Yemanov |
Post date | 2001-05-09T08:48:50Z |
Jim,
source code and understand in depth.
Cheers,
Dmitry
> In the classic architecture, each process contains the full engineThanks for your explanation. I hadn't enough time to learn it from the
> code complete with data structures, page buffers, a lock manager,
> and an event manager (on VMS all processes must be on the the
> cluster containing the database file; on other OSes they must be
> on the same CPU). All interprocess synchronization takes place
> through the lock and event managers. On VMS, Firebird uses
> the VMS lock manager for both locks and events. On other
> operating systems Firebird uses whatever shared memory and
> synchronization primitives available. For the rest of this
> discussion (and maybe the rest of our lives) we'll ignore VMS.
>
> Because the lock and event tables are shared among processes,
> it is likely (i.e. certain) that they will be mapped at different
> addresses. This leads to three ironclad rules:
>
> 1. Every involved with the lock or event manager must be in
> the shared region, and
>
> 2. All points must be relative and translated to absolute
> addresses on reference.
>
> 3. Appropriate OS synchronization primitives must be used
> to control access to the shared memory region.
>
> I think the implications are fairly clear from this point on.
source code and understand in depth.
Cheers,
Dmitry