Over at Talking Tech with SHD, Infinio CTO Scott Davis posted a piece on scarcity and abundance. His thesis is that the design of computer systems has always aligned with leveraging resources that are abundant to compensate for those that are scarce.
If you look at Infinio’s architecture, you can see that we follow that model too. Our Accelerator product leverages abundant resources on servers to solve storage performance problems that are due to scarce resources on the storage side:
- Compute resources on servers today are abundant – it is not uncommon to have underutilization of CPU cores and memory on the server side.
- Conversely, resources on storage arrays can be scarce. Arrays have a fixed amount of NVRAM, processing power, and other resources to support performance. Once those are exhausted, there’s no way to get more of them without upgrading the array.
Our architecture exploits this disparity – it leverages the abundance of server-side resources (CPU and RAM) to make up for the scarce resources (storage-side resources).
This can be even more acute when you consider modern virtualization environments. In today's VMware environments, organizations are consolidating significant numbers of applications and machines onto virtualization hosts. Server vendors have responded to this by significantly increasing the addressable RAM and CPU core count in shipping servers. However, this puts the squeeze on storage - with its scarce (or at least static) resources for storage processing, it's ill-suited for serving performance demands in these scale-out applications.
Conversely, if you take the abundant resources in a scale-out application architecture (RAM and CPU) and put them to work on the issues with scarce resources (storage peformance), the equation works. The same resources that are being used by applications to drive all the performance to the storage system can be used as the cornerstone of solving the storage performance problem.
When you add an economic lens to this, things get even more interesting. Consider that "money" is a resource that is scare, or at least constrained.
- If you use a constrained budget to add resources that help improve storage performance on the server side, you are adding them at commodity costs.
- If you use the same constrained budget to add resources on the storage side, you are paying for upgrades or additions to proprietary systems that claim a major upcharge for commodity parts.
It just makes more sense to allocate that budget to the same resources on the abundant side of the equation.
For more info on a storage architecture that leverages abundant server-side resources to solve storage performance problems,