4 ms·
I think its hardware is what enables such reliable software. Hot plug CPUs, memory modules, and DASDs. All survive the failure scenario gracefully. Good luck
by reacharavindh 3y ago
I think its hardware is what enables such reliable software.
Hot plug CPUs, memory modules, and DASDs. All survive the failure scenario gracefully.
Good luck trying to do that on a rack of x86 servers.
I think as in most engineering things. They do a different trade-off and cater to a different niche while x86 servers are the mass market consumables that most workloads -should- be using. The mainframe CPUs go for the widest IO capabilities, insane cache sizes and hardware offload because that’s what their target audience(banks, insurance companies, airline ticket systems) need.
Their parallel sysplex clustering solution is an engineering marvel but also tightly coupled to their hardware.
In some ways, the IBM mainframe is the Apple of niche critical enterprise computing. They are also the ancestor of cloud computing in paving the way for “pay per use” cost models and multi tenancy.
- bombcar 3y agox86 just made it so the whole computer could drop out of the “cluster” which greatly simplifies the hardware design but the result is NOT a “virtual mainframe” as the software becomes exponentially more complicated if you want “all power”.
- rbanffy 3y agoIt is possible to move that complexity into the platform and outside the applications themselves. When I build a web application I don't need to do anything special about failovers, as long as I remember the local filesystem and state is fungible and it only is persisted when I persist it someplace else (that also employs the same safeguards). I liked to use Google's App Engine classic environment (the Python 2.7 one) as a good example. It really hammered down some good practices (such as keeping the filesystem read-only) and gracefully handling degraded modes such as a datastore that becomes read-only for no reason or the cache that's supposed to be there that just isn't. It was a great teaching tool.
- reacharavindh 3y agoIn a way, yes, swapping out entire computers are how one is expected to work with x86 machines. Ask anybody running a critical state full workload(Relational database with lots of writes for example) and they will tell you how nice it is to have a system so reliable to run their writes onto. Running a Postgres cluster or a Kafka cluster on a bunch of x86 machines sure gives you scale, but definitely brings the pain of handling availability scenarios for write consistency. Distributed locks and distributed data stores that use Raft/Paxos serve as a good reminder of how hard it is to achieve them. If IBM could do it at hardware level, some Enterprise customers are willing to loosen their rich wallets for that comfort.