WHERE THE BUGS COME FROM

Copyright Dr Alan Solomon (1986-1995)

"SHUT  UP",  said  Lucifer,  banging his pitchfork on the table.  "There's 
no point in arguing who's fault it is.  Its clear we've got to get someone 
in to straighten out the mess." 

The problem was this.  Increased population and declining  morals  was  
causing  a  soul  processing problem, as the rate of entry was now over 100 
million per year.  The old system just wasn't coping. 

Lucifer called in the best consultant he could find, so after making sure I 
had a contract signed in blood,  I packed my summer things and set off for 
the bowels of hell.  When I got there, I could see immediately what had gone 
wrong.  They were using a single-user system, and the demon in  charge  of 
data entry had fallen behind. 

The  first  problem  was  the  sheer size of the database;  the existing 
records covered ten billion clients, and I needed to allow for at least ten 
times as many.  This totally  ruled  out  a  16  bit computer,  as  the  
largest  integer  is  a mere 65536;  even a 32 bit integer is only 4 
billion.  I decided to design the system using 64 bit integers, which would 
be available on the 80486 chip,  and until  this  became available, I would 
emulate the 64 bit word by using pairs of 32 bit words;  this gave me access 
to 16 quintillion records.  The 386 chip would allow access to 64 terabytes  
(TB)  of virtual  memory,  which  would be enough for 64 billion customers 
and I could reasonably expect that the 80486 would become available before 
that was filled up. 

The next problem was disk storage.  Since the largest devices would store 
only 100 megabytes  (using optical  disks), I'd need 640 or thereabouts of 
them.  These would be linked together into a network to give a single 
virtual 64TB drive.  But you don't really want more than 32  machines  on  
any  one network,  so  I  decided  to  be conservative, and go for 16 
machines per network.  Each of these 16 machines would be IBM ATs, linked to 
a 386 fileserver.  Twenty of these  networks  would  be  linked into  a  
super-net, with another 386 acting as supervisor.  Two of these supernets 
would be required to come up to the full 640 machines, and another 386 would 
act as arbitrator and gateway machine. 

I decided not to risk using these file server machines for data entry, to 
improve system  stability. Instead, I specified Amstrads linked into a 
similar network, each with a 20Mb hard disk (and a fan). Keying 100 million 
records per year would need 5000 keyboards - fortunately I  could  use  the  
same kind  of  network system, but with 64 machines per network, as the data 
transfer rates would be much less, so again, only two super-nets were 
needed.  We would use OCR for reading the many millions  of contracts under 
which people had sold their souls. 

I won't go into all the minor hassles I had, like the overheating problem 
(ambient temperatures were pretty high) and the problems of purchase 
(Lucifer insisted on finding a dealer who hadn't yet  sold his  soul,  and  
they're  pretty rare), and the need to replace all the monochrome monitors 
with EGA (the deep red lighting made anything else unreadable) but 
eventually, we had the hardware installed. I  thought  programming  would  
be  a problem, but Lucifer explained that all programmers wind up in hell, 
so we had plenty of staff. 

It took two years' hard work.  Eventually we  had  it  reasonably  stable,  
and  organised  a  grand commissioning  ceremony.   But  just  as  Lucifer  
was  about  to enter the first record, a flash of lightning came out of 
nowhere and melted the whole thing to slag.   Lucifer  was  hopping  mad,  
and immediately  I  was  in  deep  trouble,  although  I still don't see how 
it could have happened.  He consigned me to the worst punishment he could 
think of, and here I am still.  I been  given  a  very dirty  and  tedious 
job - I've got this huge pile of bugs, and I won't be allowed home till I've 
put them where they have to go.  I'm really sorry about this, but if I 
didn't do it, someone else would. I'm the one that puts the bugs into the 
software you buy.