Subject RE: [firebird-support] How to lock data?
Author Ann W. Harrison
At 06:58 AM 10/21/2004, Alan McDonald wrote:

>I didn't get this picture, VULCAN will not be a true SMP compliant
>superserver. i.e. it will not be providing for multiple server/CPU accesses
>to the one file

As Daniel Rail reported, InterBase and Firebird 1.x are multi-threaded
in the sense that a single long query does not block other queries. Each
query runs for a limited period of time then yields control of the CPU
to another query which in turns runs until it stalls. On single CPU
systems that works adequately. On multi-CPU systems, it confuses the
system scheduler, so we need to set processor affinity to avoid switching
context between processors with no gain in parallelism.

Vulcan runs threads in parallel, locking shared data structures during
updates. The exciting thing about SMP parallel threading is that control
can be switched at any time except during a non-interruptible instruction.
Sort of like using auto-commit, instruction by instruction - getting
consistent results requires serious advanced planning.

Vulcan was recently tested on a 4-way system and managed to keep all
four processors busy and results consistent.

>The 64 bit Vulcan will be a screaming server in it's own right though.

One hopes.