IBM at it’s best
This special system was built specifically for NYSE to report trading data.
Two /360 Model 50s, RPQ’d to function like Model 65s.
RPQ’d to use Channel-to-Channel to signal each other
RPQ’d to fetch from LCS
LCS non-volatile memory, configured:
or 4megs simplex
or two separate 2-meg units.
RPQ’d to feed the LCS’s 4-byte memory fetch to accomodate the /360-50’s 2-byte memory fetch.
2701 & 2703 “front end” communications controllers RPQ’d for special NYSE devices.
OS MVT release 11.
Later migrated to Release 18 and finally to 21.8E
Modified to give the OS memory as 3/4 meg, later 1meg. The LCS memory was “unknown” to the OS and only accessed by the application directly.
Modified to provide an alternate I/O interrupt handler. Many I/O devices were unknown to the OS, being known only to the appliction. When interrupts occured, OS routed to the standard processing for the sysgen’d devices but to the alternate IOS for other devices.
Modified the Abend process to provide excellent dumps for debugging, allow one transaction retry but preventing failure loop.
Modified task dispatcher for memory key handling.
Wrote two “Master Control” programs, one for handling the I/O device programs and one for “application” programs.
Wrote “line handlers” for non-standard devices.
These IBM modules were written in a high-level language which compiled into Assembler which was then Assembled, with the high-level statements turned into Assembler comments. It looked much like early versions of APL.
Duplex disks for application data. Failed pack could be replaced & rebuilt on-the-fly.
All record adds & updates for a single transaction were bundled together and occurred all at once in locked mode. The dreaded “deadly embrace” was impossible.
One “line handler” wrote data to the ticker. Another read that data and compared it to the data in memory, thus guaranteed no garbled data was sent out.
One /360-50 was “live” and the other was “hot standby”. Both had methods for detecting a failure of the live system and passing control to the backup system.
We needed to update from Release 11 to Release 18 to migrate from 2314 to 3330 and eventually Release 21 for 3330-II. One of those updates affected the I/O Interrupt Handler, which had been modified by the alternate interrupt handler. Unfortunately, the change was such that the new module was split into two separate programs, which made the re-apply of IBM’s modifications quite complicated.
IPL of the system took about 15 minutes originally. We installed a “Fast IPL” program which created a bootable tape that would IPL in about 40 seconds.
Eventually migrated from /360-50s & 2701/2703 to 4341 & 3705. Without the non-nonvolatile memory of the LCS, had to redesign failure options. MDS sent a signal to another 4341 running VM, then dumped high memory to tape with one SIO and via Channel-to-Channel to the VM 4341. On receipt of the signal from MDS, the VM 4341 did CP Shutdown and before going “hard wait”, it hung a Read on the Channel-to-Channel. High memory moved from the failed 4341 to the backup 4341 and we IPL’d MVT in lower memory on the backup frame. Downtime less than a minute.
When installed, the system ran 18 months with no ticker outage, which was better than NASA could do at the time.
In the last seven years of its life, the system had zero software failures and one hardware failure – total crash, red-lights, sparks & smoke. We were operational again in about 45 seconds; before the operators could get to the fire extinguishers. Users didn’t even know we had taken a hit.
On Black Monday, Oct 17 1987, the market crashed. All the “more modern, more powerful, faster systems” were blown out of the water by the huge volume of transactions – except MDS II. The oldest system, the “dinosaur” handled the load. And while the other systems were important, only MDS II was critical. Without MDS II operational to provide liquidity, the market would have been forced to close, possibly with dire consequences for the economy and even international politics.