News for hackers. Stuff that matters.
Re:Western civilization runs on the mainframe by rbranson on Monday August 02, 2010 @11:10AM (#1567828)
Anyone know why legacy mainframe software couldn't be emulated/compiled to run on a cluster of Linux boxes? Licensing, patents, legal concerns, etc? Obviously this is not a trivial issue, but it seems as if the amount of data we're talking about is not immense. Banks exchange and process large amounts of information, but how does it really compare to what people are doing with Hadoop or what Google does with MapReduce? I would imagine Google processes orders of magnitude more information than banks.
Re:Western civilization runs on the mainframe by Hoff on Monday August 02, 2010 @11:44AM (#1567924)
There can be substantial differences among what's technically feasible and what's economically feasible and what's politically feasible.

An existing environment is usually a large pile of twisty dependencies on operating system calls, on database or file formats that aren't entirely portable, on language extensions that don't exist elsewhere, on objects built from source code that's been lost, on dependencies on products from vendors that no longer exist, and it's all often inextricably linked with front-ends that would have to be rewritten, data bridges that would have to be rewritten, and users that need to be retrained.

In some cases, this effort can involve re-architecting substantial parts of a manufacturing facility that's involving six or ten buildings and that are each most of a kilometer long. And with many industrial-scale environments, change is not going to happen. You (might) see a new environment implemented when the entire production line is nuked and paved at the end of its useful lifetime, and replaced with a newly-deployed production line. In other cases, you'll probably see the existing system patched and re-used.

For many of these cases, just ramping up a load test would be a substantial effort.

Some hunks of the environment will have test cases and specs and documentation, and some hunks probably won't.

For many of these installations, substantial downtime has SEC-level visibility, or can involve exposures to various legal entanglements, or can involve re-establishing politically- or legall-mandated external certifications, or can cost thousands or millions of dollars per unit time off-line, or requires the production line to be cleaned with a jack-hammer or entirely replaced, or other issues.

If you can afford an incremental port or a big-bang port, well, what's that cost in comparison with the incremental costs of keeping the existing environment going?

C-level folks just don't blindly sign the really big bills involved in keeping these environments going, and most competing vendors seeking to acquire least part of these mainframe-scale budgets.

Re:Western civilization runs on the mainframe by masterponomo on Monday August 02, 2010 @11:26AM (#1567867)
Not sure about running on Linux, but there are COBOL and CICS systems that run on small servers. In fact there are a whole range of mainframe-like machines (e.g. AS/400) from IBM, to support different size businesses. The amount of data in some applications IS immense. If you are managing a multi-million-account credit card portfolio on a single mainframe, which nicely supports all your realtime apps (including a 100-request per second authorizations system) and your 6-hour batch cycle, there is no reason at all to port that to smaller machines. The mainframe is marvelously stable and nowadays the whole machine rarely gets hung up (I haven't seen or heard of this happening to my company or its customers since the early 90's).

Sure, you could move those apps to a bunch of smaller boxes. Then you open yourself up to server failure, admin costs of maintaining multiple boxes, etc.

Mainframes wrote the book on SaaS long before 'net cloud computing came along. IBM and others have operated computing as a utility for years and years. What manager who gets his IT done on rented computer time is going to suggest taking the apps in-house on a bunch of servers? None that I know of.

Re:Western civilization runs on the mainframe by gaius on Monday August 02, 2010 @11:23AM (#1567863)
The simple answer is that you have to have a consistent view of the world. Let's say that 100 Linux boxes in a cluster == 1 mainframe. Let's also say you're a bank. Someone connects to node 1 and makes a withdrawal from a joint account, and someone simultaneously makes a withdrawal from the same account on node 100. How do you check they haven't gone over their overdraft unless you can serialize those transactions? And if you can, and make it scale, congratulations: you're now where IBM was in the 70s'.

It's pointless to invoke the almighty Google; they simply don't deal with problems in this class.

Re:Western civilization runs on the mainframe by jtbigwoo on Monday August 02, 2010 @11:57AM (#1567955)
> It's pointless to invoke the almighty Google; they simply don't deal with problems in this class

FWIW, I worked at a major bank (top 5 in the U.S.) and listened in on several discussions between their top tech guys. As mentioned in other comments, their number one worry was the supply of COBOL coders.

They were terrified of Google and/or Paypal and what would happen if one of those companies got serious about competing in the banking arena. Most of the top architects _knew_ that it was possible to build a bank on a huge cluster of servers. They also knew that there was no way an existing bank could build the infrastructure and software while also maintaining their existing infrastructure.

Re:Western civilization runs on the mainframe by rbranson on Monday August 02, 2010 @12:13PM (#1568012)
Apparently PayPal isn't in technologically fantastic shape either. Word on the street is that they still have their core offering written in C using a CGI interface.
Re:Western civilization runs on the mainframe by Shorel on Monday August 02, 2010 @01:01PM (#1568175)
With good unit testing C is very robust and also much cheaper in hardware footprint.
Re:Western civilization runs on the mainframe by rbranson on Monday August 02, 2010 @01:17PM (#1568239)
I wasn't as much bashing C as I was the use of CGI. Most of the time when C is paired with CGI it's a pretty good indication that the code is chock full of memory leaks.
Re:Western civilization runs on the mainframe by a-priori on Monday August 02, 2010 @06:47PM (#1569387)
If you are using CGI, then those memory leaks will be short lived, limited to one request.
Re:Western civilization runs on the mainframe by rubashov on Monday August 02, 2010 @09:28PM (#1569763)
Fork is still expensive. It is not sane to fork per request.
Re:Western civilization runs on the mainframe by jff on Monday August 02, 2010 @12:56PM (#1568161)
C? I guess that only puts them 30 years ahead of the banks, then...
Re:Western civilization runs on the mainframe by cabalamat on Monday August 02, 2010 @02:07PM (#1568448)
I would love to see some startup disrupt the banking industry.
Re:Western civilization runs on the mainframe by rbranson on Monday August 02, 2010 @11:41AM (#1567917)
Banks are actually kind of a bad example for needing synchronized processing. Banks settle transactions pseudo-asynchronously in batches. While they adjust your "available balance" as well as they can, AFAIK, transactions are officially settled in the old school, nightly batch.

Even then, there are consistent, synchronous databases that run on Linux clusters. Oracle RAC and Sybase ASE come to mind. Linux also supports hardware NUMA implementations, which allow single system image software. An emulation layer could run on top of NUMA hardware.

Re:Western civilization runs on the mainframe by gaius on Monday August 02, 2010 @11:50AM (#1567940)
I am very experienced with RAC and its predecessor OPS. It really is nowhere near as performant or reliable or scalable or manageable as a mainframe. Which is not to say it's not "good enough" for many serious, real-world workloads, of course it is. But you're comparing a Toyota pickup to a JCB earthmover.
Re:Western civilization runs on the mainframe by Retric on Monday August 02, 2010 @12:17PM (#1568030)
Aging Mainframe Hardware is horribly slow. A fast 5,000$ server built today (Raid of SSD etc) is significantly more powerful than any Mainframe built prior to 1998. But Mainframe Software is far more efficient than anything built for a modern PC.

PS: I suspect a large part of this is the mindset and experience of the people building the software. Well written Java code can be about as fast a well written COBOL code, but the average Java system is horribly inefficient.

Re:Western civilization runs on the mainframe by gaius on Monday August 02, 2010 @12:35PM (#1568092)
In floating point, yes you are entirely correct. But that old mainframe'd show you a thing or two about I/O.
Re:Western civilization runs on the mainframe by Retric on Monday August 02, 2010 @12:59PM (#1568168)
I respectfully disagree. The only place they come close is a late 90's huge disk arrays, but random access to SSD arrays are amazing and once you start looking at things like L2 cache bandwidth old mainframes start looking anemic.

Edit: An 1980 IBM 3081 could access up to 32 megabytes of main memory. A 5400-series "Harpertown" can have 24 megabytes of cache. So Modern CPU cache memory vs Mainframe main memory is not an unfair comparison. But that's just overkill the real shocker is 3081 had less bandwidth to it's registers than many modern computers have to it's local network. (It was below 40MHz and consumed 23 kilowatts of power).

PS: Feel free to post some actual numbers.

Re:Western civilization runs on the mainframe by sophacles on Monday August 02, 2010 @01:28PM (#1568280)
Why do you keep comparing old mainframes to current tech? Why not compare current mainframes to current tech -- its like those people who try and compare the java of 1998 with the C of today (you know "jvm takes minutes to start, and has x, y and z gc issues...").

Mainframes from IBM are under constant revision and update, just like server tech.

Re:Western civilization runs on the mainframe by Retric on Monday August 02, 2010 @01:32PM (#1568305)
Because they are still being used. People think they need to replace an old mainframe with a cluster but that's just not true. Also, large modern day mainframes have become distributed systems so while you may still need a cluster you are already using one.

PS: We live in an age of horrable custom software, sitting on a monstrous stack of terrible commodity software. If you spend a noticeable amount of time waiting on a modern computer system it's really just a software problem. (Wait you actually want to use XML?) But, often upgrading the hardware is really the best option.

Re:Western civilization runs on the mainframe by rbranson on Monday August 02, 2010 @12:04PM (#1567979)
I'll definitely yield to your experience. What exactly makes the mainframes so much more capable? How does it compare to something like an SGI Altix cluster with 2048-core / 16TB single system image capacity?
Re:Western civilization runs on the mainframe by gaius on Monday August 02, 2010 @12:32PM (#1568075)
The mainframe is built from the ground up for transaction processing. Have a look around Wikipedia for terms like: CICS, IMS, TPF, Sysplex, WLM. Everything, the hardware, the kernel, the rest of the OS, the programming model, the languages - all for this. It has no pretence of being a general-purpose computing platform.

The mainframe would suck for what you'd use the Altix for, e.g. weather forecasting. The Altix has a lot of processes that want to work on a common dataset, but it would grind to a halt if you tried to use its interconnect to serialize transactions.

Re:Western civilization runs on the mainframe by rbranson on Monday August 02, 2010 @01:15PM (#1568233)
Exactly what makes it so much more useful for transaction processing? I'm looking at these things you suggested, but how does CICS compare to something like BEA Tuxedo? Of course there are no benchmarks or talk of performance out in the open on the web because I'm sure their licensing agreements forbid that.

Do mainframes have some kind of crazy low-latency or high bandwidth bus that something like the Altix is missing? It appears they use similar hardware architectures, at least from a high level: super high speed modular backplanes with blade servers that form a single system image. The NUMALink 5 is stated as having 15GB/s of bandwidth (7.5GB/s in each direction) with a ~1µsec latency.

Re:Western civilization runs on the mainframe by gaius on Monday August 02, 2010 @02:47PM (#1568583)
A mainframe is to transaction processing as a GPU is to 3D graphics. Does that make sense?
Re:Western civilization runs on the mainframe by rbranson on Monday August 02, 2010 @04:53PM (#1569033)
No, you are being extremely vague. A GPU only performs well at executing a small set of mathematical instructions in a very specific, ultra-parallelized model against limited sets of data. They are not Von Neumann machines. A mainframe runs business software on general purpose CPUs with a normal memory model. It wasn't long ago that Macs and IBM mainframes shared the same CPUs. Yes, they support virtualization in hardware, but so do cheap Intel processors now. They appear to be architecturally no different than large SMP boxes. Please enlighten me on the key hardware differences that make them so apt for transaction processing.
Re:Western civilization runs on the mainframe by gaius on Monday August 02, 2010 @05:08PM (#1569086)
Heh, I suggest you do a little reading around the architecture and the way SAPs interact with the main processor(s).

Or we can just say that all languages that are Turing complete are equivalent...

Re:Western civilization runs on the mainframe by skalpelis on Monday August 02, 2010 @11:31AM (#1567885)
I know that Google Checkout isn't a "real" financial institution but surely, I'd think those problems were of the same class - perhaps it's just that they don't have to worry about legacy problems (yet).
Re:Western civilization runs on the mainframe by gaius on Monday August 02, 2010 @11:41AM (#1567916)
Google Checkout backs onto a payment processing gateway. Google isn't a bank!
Re:Western civilization runs on the mainframe by vl on Monday August 02, 2010 @08:42PM (#1569670)
Any large distributed system barely runs on the specific hardware/OS it was designed for and required constant monitoring and maintenance. Even OS upgrade (i.e. in theory it should stay compatible and "just work") in the large datacenter takes weeks of testing and fixing. Migrating from mainframe to linux is very very very expensive. On top of that to achieve same reliability there will be a need to re-architect some software pieces.

BTW, Google needs with MapReduce are fundamentally different - it favors scalability and thoughput over correcteness vs banks that need distributed transaction consistency most of all.

Re:Western civilization runs on the mainframe by LaPingvino on Monday August 02, 2010 @11:23AM (#1567864)
There is actually mainframe emulation, it can certainly be done. However, IBM is doing everything to keep that unattractive and with a bad image.
Re:Western civilization runs on the mainframe by rbranson on Monday August 02, 2010 @11:42AM (#1567921)
I suppose what I'm talking about is a company with real biz clout (like HP) coming up with a solution to compete with IBM.