Transaction Processing

William J. Earl wje at daisy.UUCP
Sat Mar 15 08:20:47 AEST 1986


In article <1692 at brl-smoke.ARPA> larry at jpl-vlsi.arpa writes:
>"Unix is terrible for transaction processing and DP processing by banks and 
>insurance companies."
>I've heard this before.  Why is this so?  And does putting a U**x on top
>an OS that does do good transaction processing solve the problem?  Would a 
>native Unix with a kernel optimized for TP fall down on program-development
>functions?

    UNIX is not fundamentally terrible for transaction processing.  Rather,
it simply lacks certain facilities which would make typical applications
efficient and easily implementable.  What is required is fast indexed record 
access (as in a good database system), atomic transactions with respect the 
above accesses, and good communications support, including BISYNC and X.25.  
A forms-control language or package would also be helpful (for handling 
formatted screens).  It turns out that a database system which includes
atomic transactions in a clever way, such as IBM's IMS FASTPATH, can provide
very high transaction rates, with a declining cost per transaction as the
transaction rate rises.  There is nothing in UNIX which prevents the 
implementation of such a database system, at least on 4.2 BSD, but unless
it is added to the kernel, perhaps as a simulated "character device driver",
it must pay a high overhead for disk accesses.  The problem is that UNIX only
provides asynchronous I/O via the block cache, but a database system needs
to manage its own cache.  On System V, one could use shared memory,
extra "I/O server" processes, and semaphores to provide asynchronous I/O
at user level, but one would have not protection for the data, since
it would then be visible in all applications.  

    Putting UNIX on top of most of the transaction-oriented operating
systems with which I am familier would likely lead to unsatisfactory 
UNIX performance.  An exception would be in a virtual machine environment,
as on VM/370 with MVS and UTS running in parallel virtual machines.
On the other hand, such a system allows only cross-development,
in that one cannot debug the application under UNIX.

    A UNIX with a transaction-processing kernel should certainly
be feasible, but the kernel would be substantially different from a normal
UNIX kernel.
-- 
	William J. Earl
	Daisy Systems Corporation, Mountain View, CA



More information about the Comp.unix mailing list