When a storage system provides new trust features, it is not uncommon for these features to perform quite poorly.
In a previous post, I looked back at the early-1990s introduction of RAID-5 as a new trust feature. Performing a write to a RAID-5 storage system required four disk operations. Heavy write workloads, therefore, experienced "slow trust."
The first RAID-5 system we ever worked on delivered 12 I/Os per second for all-write workloads (e.g., restore operations). After we avoided getting fired, we responded by releasing performance improvements: a fast mirrored write cache on top of RAID-5.
This evolution of implementing "ever-faster trust" continues with blockchain. As increasingly larger numbers of enterprise applications experiment with permissioned (private) blockchains, they experience the same "slow trust".
It is not uncommon for these applications to experience 5 I/Os per second for specific workloads. This slow behavior is unacceptable for enterprise-class applications, so the industry is now working on performance advancements that still maintain trust.
The BLOCKBENCH project at the Computing Department of the University of Singapore has created a blockchain performance testing framework. In their paper, BLOCKBENCH: A Framework for Analyzing Private Blockchains, the authors make the following statement:
“Multiple platforms for private blockchains are being actively developed and fine tuned. However, there is a clear lack of a systematic framework with which different systems can be analyzed and compared against each other.”
The researchers point to the underlying network (and the Practical Byzantine Fault Tolerant protocol, or PBFT) as a primary culprit for slow time-to-finality at scale.
“In fact, we also observe that as time passes, client requests took longer to return, suggesting that the servers were over saturated in processing network messages. We note, however, that the original PBFT protocol guarantees both liveness and safety, thus Hyperledger’s failure to scale beyond 16 servers is due to the implementation of the protocol. In fact, in the latest codebase (which was updated after we have finished our benchmark), the PBFT component was replaced by another implementation. We plan to evaluate this new version in the future work.”
The USENIX paper BFT Protocols Under Fire contains a diagram that highlights how excessive inter-node network messaging can cause significant performance problems. I've circled the number of messages that occur for a simple PBFT example where the number of nodes (replicas) is n=4.
This inter-node messaging, in the context of the blockchain, occurs so that all nodes can come to a consensus on whether or not an application's new entry is valid.
Performance suffers when the messaging approach depicted above executes with an increased node count (e.g., n = 100). Messaging delays for large configurations will scale quadratically. "Quadratic scale" is another unacceptable symptom for the enterprise; there is an expectation that adding nodes will result in linear performance scaling.
PBFT consensus algorithms are one of the latest in a spectrum of algorithms considered for enterprise-class permissioned blockchains. The diagram below highlights this evolution.
What is the next step in this evolution? Within Dell Technologies, the VMware blockchain research team contains some of the industry's most experienced researchers in the area of consensus algorithms:
VMware Research is actively participating in advancing the infrastructure underlying the Blockchain technology in order to provide the most secure, reliable, and scalable Blockchain platforms.
They've developed new algorithms that provide linear scaling as node counts increase.
In an upcoming post, I will explore how their approach differs from PBFT and why their new algorithm (SBFT) will result in faster levels of trust.
Steve
Twitter: @SteveTodd