5G will reshape networks and information system architectures through the emergence of radical, large-scale, new products and usage patterns. Will long-established principles of computer science remain unchanged?
CAP Theorem, published in 1998 by Eric Brewer (founder at Inktomi, now at Google, a good story) restricts any information system to have at most two of the following three qualities:
- Consistency: The most recently updated information is available across the system
- Availability: The system provides low-latency, non-error responses for all queries
- Partition tolerance: The system can continue to operate during loss of communication between nodes
CAP has provided valuable guidance and a foundation for system architecture for 20 years. But the future may contradict it.
Here are the three top-level objectives for 5G:
- Extremely high data rates and low latency for huge numbers of concurrent users
- Enabling communication for potentially billions of network devices
- Extremely reliable and low-latency communication for a broad and emerging category of services that are dependent on availability, latency and reliability
Clearly 5G architectures will be highly available, with high throughput, concurrency, and performance. To achieve these, 5G edge networks will grow significantly closer to the end user. Systems must be highly distributed to maximize this topology. And they’ll have robust partition tolerance to do so.
Interestingly, 5G objectives do not explicitly include consistency.
But consistency is required to transactionalize any system. When users pay for something, it must be delivered. Consistency will be central to 5G systems to make them profitable.
In other words, 5G systems will need all three CAP qualities: consistency, availability, and partition tolerance.
It’s important to emphasize that CAP applies to full systems, not only to data storage components or technologies. That’s an important detail because it’s possible for example to build an information system using a CAP consistent data tier, and provide availability or partition tolerance in the tiers above it.
And, more specifically, it’s possible to create systems that are CAP consistent and available, but that can trade availability for partition tolerance in the event of an outage.
For several years we’ve witnessed the emergence of ‘eventual consistency‘ -or optimistic consistency-, meaning that consistency can be delayed as long as it’s transparent to the user. New technologies are using this approach to simulate all three aspects of CAP.
In effect, new systems will be constantly in motion, trading between consistency, availability, and partition tolerance in order to simulate the presence of all three. What an amazing outcome, indicating that future technologies will be more radical and powerful than we imagined just five years ago.
It’s a stark change from architectural predictions of the recent past. Guidelines such as “Centralize and consolidate” and “Keep state in reliable centralized stores” now seem simple, restrictive, and boilerplate. In reality, innovation will bend the rules and will produce diverse solutions to enable systems to appear to break CAP theorem.
Google Spanner is an example of the future of 5G systems. CAP choices are not static, instead the balance of properties change as needed. Eric Brewer comments:
Despite being a global distributed system, Spanner claims to be consistent and highly available… Does this mean that Spanner is a CA system as defined by CAP? The short answer is “no” technically, but “yes” in effect… during (some) partitions, Spanner chooses C and forfeits A. It is technically a CP system.
CAP Theorem will remain relevant, correct, and useful as 5G systems continue to emerge. But CAP is not a stopping point. Instead, it’s a kind of sign post, guiding the future, and predicting the ways we will bend and overcome established laws of computer science.