Mainframes are built differently, such that each CPU and NUMA zone of memory has its own (virtual) private bus to its own (dynamically) dedicated IO peripherals—it’s like a little circuit-switched network with CPUs “placing calls” to peripherals. And, because of this, mainframes do let you just scale your problem vertically, without IO bandwidth limitations ever getting in the way. They function less like like one computer, and more like a Mosix cluster that all happens to be running on a common backplane. But, unlike Mosix and its ilk, the DC only sees one SNMP node with one set of traps, and the whole thing provides hotswap robustness against itself rather than that robustness being partitioned per machine.
An x86 server is a computer built around its CPU. A mainframe is a computer built around its buses.
While they had they own datacenters (two of them, hosting about ~2k physical x86 server machines and many more virtual machines) all of their retail shop inventory and sales processing ran on IBM SystemZ mainframes. They had more than one of them, and were in the process of buying a new one.
What they told me is basically they have a 24/7 operation with no downtime accepted. They also need to process a huge number of orders (check-out at the grocery stores, basically) in real time. Their inventory systems were not very different from the original ones written in the late 70ies except for some evolutions along the way.
They also told me about that time when they switched from an old mainframe to a new one, during the business day, in the middle of the operations, with no downtime or service interruption.
So basically what I got from that is that the benefits are:
- write once, run forever code
- 100% uptime (not "five nines", literally 100% uptime)
- a reference environment that you can rely on (no runtime change, everything that works today will keep workin in 30 years)
- value added consulting from IBM
- a complete set of tools (runtime, database, primitives, libraries etc)
There's literally no such thing as 100% uptime. You can add more "nines", meaning that disruptions become exponentially less likely, but that's still very different from "100%".
https://en.wikipedia.org/wiki/Tandem_Computers#Tandem_NonSto...
As the above link mentions, everything is redundant. CPUs running in (near) lockstep - voting bad cpus out, redundant storage, power etc etc etc.
I've not seen a better write up on IBM's equivalent systems - but I've not had a reason to play with such big iron. NSKs however were much more affordable, and were used in the late 90s/early 2000s in various telcos etc.
Your decommissioning event had me in stitches. I might use that phrase in the future :D
If, for some reason, an event decommissioned all three machines, having our computers back online would be a lesser problem - we would probably be better off learning to hunt and make fire.
https://www.ibm.com/support/knowledgecenter/zosbasics/com.ib...
http://www.redbooks.ibm.com/redpapers/pdfs/redp5346.pdf
Plus one that I seem to be posting on a monthly basis these days:
https://www.redbooks.ibm.com/redbooks/pdfs/sg246366.pdf
Here's one I just found, and will be reading tonight I think:
http://www.redbooks.ibm.com/redbooks/pdfs/sg248550.pdf
Enjoy!
If you're really keen, the base z/OS docs can be found here when you've got a spare couple of decades:
https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pag...
I am just constantly surprised that on the one hand FAANG+ which run so much of the internet economy do not use mainframes, and yet banks do.
You'll find those on e-Bay. A new one will be significantly more expensive.
Edited to specify which sibling I was referring to.
I don't think any serious bank will consider trusting outsider with their core business.
And mainframes are essentially early on premises clouds.
And today's, cloud offerings still don't do what mainframes did as easily.
(and there are several things that cloud does offer that mainframes can't do)
A big bank will usually do its own ledger processing. A good configuration is to process in two pairs of data centers more than 200 miles apart in different electric utility interconnection regions, e.g. Arlington/Fort Worth and Dayton/Springfield. Archival storage of transactions may involve additional centers. https://en.wikipedia.org/wiki/IBM_Parallel_Sysplex#Geographi...
Cloud is cheaper ($ per cycle) at the expense of human brain power to glue it all together.
That's the whole explanation right there. "Move fast and break things" is not the way that sort of business works.
Recapping what i've written in another comment:
- 100% uptime
- reference, full featured platform that does its job doesn't change much during the years
- write once, run forever approach
- everything on premise
To get a sense, have a look at the E980’s Reliability, Availability, and Serviceability Manual. [1] that systems NOT a mainframe - but it borrows ideas from it. Even in that system all levels of it are designed for failure, from Customer replaceable units like fans or power supplies to certain busses have extra lanes or wires for parity or spares depending on the design. Internal to the processor logic there’s a large number of internal checkers that watch the architected state of the machine and notice when something abnormal happens. For several things the processor core will unwind its state and retry an op, and if it proceeds, flag itself as having had a “recoverable” error, which usually triggers a service action. If the system can’t recover it halts either the core or the entire platform, and a dump happens from the service processor which then offloads it to the management console for diagnosis.
Z boxes do all of the above - and more. There’s pictures floating around the office of a system that went through and earthquake, fell over (someone didn’t buy the optional earthquake bracing for the rack) and as it fell, it domino’d over along with several other racks. It still running when the techs went to inspect the data center, though it did turn on its “service me” attention light. ;)
https://en.wikipedia.org/wiki/Channel_I/O
That difference a big part of why our PC's and servers have low utilization while mainframes have massive utilization/throughput. There's designed in embedded space copying it, too, where they have a main processor and a cheaper one for I/O.