Until recently, “Real Time” meant more or less whatever you wanted it to mean, as the majority of interactions took place at human time scales. As we move to an era where the majority of interactions will either be Machine To Machine (“M2M”) or will have a human on one side and a machine on the other (“H2M”), the term becomes more quantifiable. Consider the roughly 1000X reduction in the time available, as we move from the 7 seconds it takes a human to get bored waiting for a website to load, to the 7 milliseconds that’s needed to either make M2M interactions work or intervene in a “Human To Machine” event and it becomes clear that we are – in fact – witnessing a slow-motion revolution. This revolution is evident in numerous trends, including:
Internet access has become ubiquitous, not just inside the workplace or the home but more or less everywhere. Technologies like Starlink will eliminate the ‘last mile’ problem outside cities and 5G will provide high bandwidth low latency within cities and workplaces.
M2M will dominate internet traffic
We are shifting away from User Interface devices to M2M devices. If I check my home router I can see a car, a lighting controller, a Roomba and a heated bathroom floor, all of which have their own IP addresses and connectivity.
Hyper Personalization tied to ongoing events
User interactions are becoming customized to a level never before envisaged. Initially this has been most obvious in social media, to the point where two people can be sitting next to each other on a park bench and receive completely different sets of information about the same subject, but we are now at the point where, instead of bombarding them with generic banner ads at random moments of the day, we can intervene at the right instant with the right personalized offer. For example, VoltDB is used to offer pre-paid mobile phone users call packages in the 250ms window between when they end a call and when they put their phone back in their pocket.
Industry finally catches up
With 5G and Edge computing, we are now seeing these technological shifts move from the home to industry. Just as it took electricity around 40 years to improve manufacturing productivity, we are now at the point where new manufacturing facilities are being rebuilt around the capabilities of 5G. This will require a new software ecosystem that works in the timescale 5G does, which is single digit milliseconds.
Adapting to – and Capitalizing on – this new millisecond world
All revolutions have winners and losers, and this one will be no different. We can already identify technologies and methodologies that have reached the end of their natural lives and may not have a meaningful role in this new world:
Complicated stacks with many layers need to be simplified
Every time you add a layer to a system you ‘bake in’ latency. Here at VoltDB we have multiple customers who could approach solving their problem with a multi-level stack, but not in a meaningful time scale. Real world experience tells us that, even when these stacks can normally respond within SLAs, they struggle to do so consistently over a long period of time. Elaborate stacks also raise issues around High Availability and patching, as users are forced to choose between frequent outages to fix a single layer, or need to wait for maintenance windows, while sitting on scary bug reports and the potential liability they could create if the system runs with knowingly unfixed bugs. VoltDB helps in this situation, as it can absorb a message from the real world, retrieve state information, take a decision, store changed state and tell third party systems – within a single trip to the server.
Being able to scale is not enough – it needs to be economic to do so
When you take a decision (as opposed to recording one) you ultimately need to control access to the structures in RAM that represent the resources you are working with. VoltDB is one of the very few existing database products that work well when multiple users wish to use the last units of a resource. The second factor to consider when discussing scale is economics. Different technologies have a tenfold or more difference in the resources they need to operate at a given scale. Regardless of how impressive your M2M or H2M application looks, sooner or later the economics and costs of providing the service will become a factor in deciding who is the long term winner. Here at VoltDB we’ve seen benchmarks done by customers that indicated that alternative products could match our scale, but only with a massive increase in resources.
Ambiguous or late decisions are unacceptable
In both the M2M and H2M scenarios, taking the right decision is paramount. This sounds trivial, until you realize that a lot of current database technologies have design features that make taking large numbers of accurate decisions within tight time frames difficult. Firstly there’s a need for ACID transactions, which ensure that shared, finite resources are allocated properly. While ACID was unfashionable for the best part of a decade, vendors are now racing to add an ACID ‘layer’ to their products, but doing so without baking in latency will be a challenge. One alternative to ACID that we’ve seen people use is some form of optimistic locking, either explicitly or by sending binary updates to a record that then gets rejected if the record has changed in the meantime. This causes what’s known as a ‘Long Tail’ latency, where a noticeable number of transactions will exceed the available SLA. This phenomenon rapidly gets worse as contention for the underlying record increases.
The second design feature that causes issues is Eventual Consistency, which I discuss here. It gives you a choice between really slow transactions involving multiple nodes, or fast ones which may not ‘stick’ and can be undone.
Why Millisecond Latencies, Transactional Consistency, and High Scale – ALL Matter
It is these trends, considerations and necessities that drives all development for VoltDB, and what led us to define it as an ‘ideal data platform’
With VoltDB, you remove all compromises:
Millisecond Latencies: VoltDB is able to take complicated decisions within milliseconds, even when the decisions involve shared finite resources that lots of people are trying to use at the same time.
Transactional Consistency: VoltDB’s customers rely on the platform to make money and eradicate revenue loss. They do that bytaking accurate and reliable decisions that are always in line with intentions.
High Scale: VoltDB routinely works with volumes in the hundreds of thousands of transactions per second. We expect this to increase tenfold over the next five years, based on conversations with our customers.
We are currently experiencing the beginning of a revolution. In the short term people will struggle to meet the demanding millisecond time constraints. Over time, the laws of economics will impact those who can’t scale affordably. So rather than picking a technology, and then trying to shoe-horn it into the requirements of this new world, we recommend you start with your latency and scale expectations, use this to identify products which can meet your needs and then do a proof of concept to measure real world deployment economics. We’ll be happy to talk to you about this blog or any other ideas involving high performance transaction processing on millisecond timescales.