4 ms·
I think that mainframes are the solution to the problem that some applications run well only on a single machine. Most software has been cluster-fied, but ther
by justinsb 13y ago
I think that mainframes are the solution to the problem that some applications run well only on a single machine. Most software has been cluster-fied, but there's one big one that is left: databases.
Mainframes are more expensive per-CPU-unit or per-IOPS. Google has shown that, with the right distributed software, a cluster of cheap machines can be more reliable because you avoid putting all your eggs in the mainframe basket. (The tradeoff is that your software is more complicated and likely introduces new failure scenarios).
So, although mainframes are indeed optimal for today's database, the NewSQL hypothesis is that different database software will be able to run on multiple machines, and so the mainframe will no longer be the optimal solution. This (hypothesized) database would run on a cluster of commodity machines, and should therefore be cheaper and hopefully more reliable. Moreover, just as Google's clusters beat Altavista's mainframe approach, a clustered database should scale to much bigger workloads than the biggest mainframe.
Of course, this relies on a new breed of database.
- capkutay 13y agoVery interesting points. 'Google has shown that, with the right distributed software, a cluster of cheap machines can be more reliable because you avoid putting all your eggs in the mainframe basket.' 'Moreover, just as Google's clusters beat Altavista's mainframe approach, a clustered database should scale to much bigger workloads than the biggest mainframe.' My one comment on those points is that distributed computing solved Google's problem, and of course applies to what many software companies are trying to do (amazon, yahoo, etc.) But do they have an answer for the set of problems where 100% ACID compliance and high-availability is a requirement?
- haimez 13y agoACID compliance is not ever a strict requirement, it's an abstraction guarantee. If you have a fully ACID compliant database with a sufficiently expressive query interface, then the complexity of the datastore is a perfect abstraction. The ATM machines people use every day to exchange money are not fully ACID compliant, and they do not use "transactions". It's a calculated choice on the design of the system to account for the guarantees in different ways and balance discrepancies that occur after the fact. If you need full ACID compliance and need to operate at "Google scale", you reorganize the problem so that you don't need the compliance.
- justinsb 13y agoI believe NewSQL will deliver 100% ACID and high-availability on distributed systems. Not 100% availability, because CAP tells us that's theoretically impossible. But availability as good as any _real-world_ non-consistent database _implementation_. The CAP conjecture has certainly been a major barrier to progress in this area ;-)