Re: Informix and Oracle in the same shop
Posted in 1997
>From: news_reader@mew.corp.sgi.com (Pablo Sanchez) >Date: 4 Jun 1997 14:14:35 GMT >X-Informix-List-Id: <news.38728> > >David Williams <djw@smooth1.demon.co.uk> writes: >> >o Informix isn't threaded because you have all 'em VP's running out >> > there. They aren't in the same execution space. They have their >> > own and thus there is *some* context switching. Of course Oracle >> > has a process for *everything* so that's taking context switching >> > to the max. >> >> So how do you get >1 CPU used simulatanously if you one have one UNIX >> process. > >I know that this may sound patronizing but really that's not my >intention... consider reading Threads Primer by Bil Lewis/Daniel >J. Berg ISBN 0-13-443698-9, it does a much better job than I can ever >do to explain how a single process (multithreaded) can run in a >single processor environment as well as in a multiprocessor >environment. How system calls that perform I/O, if they are >thread-safe, can handle the concerns that you list, how multiple >threads within a process can run *concurrently*. You can only use multiple threads with concurrent system calls in different threads of a single process can only happen if the operating system supports it. In general, Unix does not support that type of threading, though I think it is available with a few versions of Unix. NT, on the other hand, does support this sort of threading, AFAIK. To have multiple threads of a single process on multiple CPUs concurrently requires an extra level of operating system support. I'm not sure whether NT supports that; I don't know of a version of Unix which does (though there are probably some experimental versions around, and I may not know enough about the market). >That's the type of threading I'm talking about. OK. Ideally, on platforms where that threading is possible, it should be used. However, because 90% or more of the machines out there running Unix do not support that sort of threading, a system that was designed to run exclusively in an environment that required that sort of threading would not work on the (vast) majority of existing machines. For the majority of systems, the ideal threading you are advocating is not an option, so Informix uses its threading package to get as close to your ideal as possible. Don't forget that Informix's VPs are virtual processors; they are surrogates for real processors. Ideally, each VP has its own physical CPU -- affinitied to a CPU -- but most machines don't have that many CPUs. > Don't believe the (vendor) hype. ... Or the 'academic hype' for what is theoretically possible against the pragmatics of the market place! Yours, Jonathan Leffler (johnl@informix.com) #include <disclaimer.h>