Subject Re: [firebird-support] Multi CPU machine
Author Daniel Rail

At October 8, 2004, 16:50, Aage Johansen wrote:

> Martijn Tonies wrote:
>>> p.s. I notice in the road map, multithreading is coming in a separate
>>> Vulcan [release]
>> Not multi-threading, but better multithread with SMP/hyperthreading
>> support.

> The Roadmap (under Vulcan) does say:
> "Superserver is to be fully multi-threaded and SMP-friendly."

Although, you have to read the paragraph that is at the top of that
page that relates to Vulcan to see the bigger picture. It mentions
about "fine grained multi-threading", which is not the current
Firebird's multi-threading architecture. If I recall, Jim's fine
grained multi-threading will be managed by the OS, not by Vulcan.
Firebird's multi-threading is managed by Firebird's own thread
scheduler, and apparently only lets the execution of code from one
thread at a time, and this is apparently one of the reasons why you
see the ping-pong effect in an SMP/HT enabled system.

But, before someone jumps in and say: if that's the only thing holding
back true SMP support in Superserver, and that it shouldn't be much
work to implement. It is not the only thing that needed a redesign,
and Jim apparently had to touch a good portion of the engine's code to
make fine grained multi-threading work.

Best regards,
Daniel Rail
Senior System Engineer
ACCRA Group Inc. (
ACCRA Med Software Inc. (