Subject Re: [IB-Architect] Pros and cons...
Author Markus Kemper
Hi Phil,

I'll take a whack at this one. We've been discussing this
issue internally quite a bit. Classic does have some nice
benefits over SuperServer at this stage in the game. I
think that most if not all of those benefits could be
implemented into the SuperServer engine.

> I like the ability to be able to kill a client in Linux

May I ask when and why you find this a benefit. Ann asked
me to come up with a pros of Classic list a while back and
this was one of them but, I see this more as a dev-time
feature vs. a run-time feature. I see a run-time environment
as one where queries executing against the database are
tested and known to execute well. In a dev environment
a bad query may be executed thus killing it is handy.
Either way 'async-query-cancel' could likely be implemented
in SuperServer.

> IB, but the recent tests of IB against postgres identified
> the lack to caching in the classic architecture as a cause of
> 'reads' being slow.

This was the opinion of the author of the article as to
why Postgres did better on the test he chose. The results
in the article did not reflect the entire test suite (at
least after reading the test suite that was my impression).
Many of the tests not represented would likely be favorable
to InterBase and its MGA. Either way a shared cache IMHO
is a benefit to performance and analysis.

Some of the other benefits of Classic to date are:

a) True Local access on UNIX platforms. Meaning that

connect /dbs/mydb.gdb

does not go through loopback to connect. True local
access can yield better performance for 'local' apps.
It is my hope that the performance of loopback could be
optimized to make it comparable to 'local' access and
resolve this performance issue.

b) A client crash does not bring everyone down. Not sure
how to address this one. The server should never crash
in the first place. This issue used to really concern
me but, SuperServer is IMHO finally getting mature in
that its pretty darn stable. v5.0 and v5.1 were pretty
quite crash prone but, v5.5 and v5.6 are quite good
and v6.0 is looking very stable. So I'd rather see us
continue to make SuperServer more stable vs. going the
route of trying to react to a crash and continue work
the other clients. It would be nice if the engine
could be more intelligent about reporting a crash so
that it was easier to identify and reproduce and then

c) SMP support. Classic scales better by design at this
point. This could be implemented in the SuperServer,
it just takes time.

I'd love to hear more reasons as to why Classic is favorable.