Say Goodbye to High Data Access-Latency Cloud Storage with Simplyblock’s Local NVMe SSD Caching
Jul 26th, 2024 | 9 min read
Table Of Contents
- The Challenge: Balancing Performance and Cost
- Simplyblock's Local SSD Caching Solution
- Real-World Validation: Discord's Super-Disks
- Simplyblock's Architecture: a Closer look
- The Bigger Picture: Transforming Storage Performance
- Looking Ahead: the Future of Storage Performance
- Conclusion: Free the Full Performance Potential of your Data
When using persistent storage on cloud providers, there are two options, locally attached (like AWS’ Instance Store or GCP Local SSD) or remote (like Amazon EBS or Google Persistent Disks). Both have their pros and cons. Imagine a world where you could get the best of both options.
Discord just dreamed of something like it just a little while ago and couldn’t find a solution, so they started to implement their own. But not too fast, let’s get the background out of the way first.
The Challenge: Balancing Performance and Cost
Running a high velocity database in the cloud is a constant struggle to balance high performance versus your cloud spending. It’s not only you and me, it’s everyone. Discord saw the same challenge with storing more than 4 billion messages by millions of users per day.
My immediate first reaction is local storage. Low latency, high throughput. But it comes at the cost of first and foremost cost, but also with the problem of backup and scalability.
Persistent cloud disks, on the other hand, offer great scalability and are automatically replicated, but are typically lower throughput and higher access latency due to the introduced network latency. It quickly becomes the main bottleneck in a system. You can get around this issue, but at a hefty price.
Simplyblock’s Local SSD Caching Solution
At simplyblock, we love a good challenge, hence we took it upon ourselves to implement the best of both worlds; a super-scalable and low-latency software defined storage engine with zero downtime resource scalability, as well as the option to add local SSD near caching for lowest latency possible.
This feature is designed to significantly boost the read performance of simplyblock’s logical SSD volumes by caching data locally on directly attached SSD devices. But what does this mean in practice, and how does it benefit users?
How does Local SSD Caching Work?
At its core, simplyblock’s caching functionality leverages the blazing-fast speeds of local NVMe SSDs to create a high-performance and transparent caching layer. Here’s our simplified process:
- When data is read from the logical volume, it’s stored in the local SSD cache (read-behind).
- Subsequent read requests for the same data are served directly from the cache, bypassing the need to access the main storage volume.
- This caching mechanism dramatically reduces latency and increases throughput for frequently accessed data.
- When data is written to the logical volume, the information is passed through to the underlying backend storage and stored locally in the cache (write-through).
The beauty of this approach lies in its transparency, simplicity, and effectiveness. By caching data close to your workload, simplyblock eliminates the performance bottlenecks associated with network-attached storage, all while maintaining the benefits of centralized storage management.
Additionally, the caching layer is built into the solution and fully transparent to your application, meaning that there is no need to change the application. As a developer, my heart couldn’t jump higher.
What are the Benefits of Local SSD Caching?
In addition, simplyblock’s local SSD caching brings quite a few more benefits to the table:
- Dramatically Improved Read Performance : By serving frequently accessed data from local SSDs, latency is significantly reduced, and throughput is increased.
- Cost-Effective Performance Boost : Users can achieve high-performance storage without the need to invest in expensive, all-flash storage for their entire dataset.
- Scalability : The caching functionality can be easily scaled to meet growing performance demands without overhauling the entire storage infrastructure.
- Flexibility : Simplyblock’s solution provides logical (virtual) block storage devices which means that it works seamlessly with existing setups, providing a performance boost without disrupting current deployment processes.
- Optimized Resource Utilization : By caching hot data locally, network traffic to the main storage volume is reduced, optimizing overall resource utilization.
- Transparency: Making the caching an integral part of simplyblock’s storage architecture, it is fully transparent to users, hence it works seamlessly with any existing workload such as databases, analytics tools, and more.
Real-World Validation: Discord’s Super-Disks
As mentioned before, in 2021 / 2022, Discord faced a similar challenge. They needed to scale storage and get the benefits of internal storage data protection (in their case, GCP Persistent Disk with automatic replication), but found the remotely attached disks to be “too slow”.
That said, Discord, known for its popular communication platform, encountered performance issues using Google Cloud Platform’s Persistent Disks. Their workaround, much like simplyblock’s caching functionality, involved using local SSDs to cache data and dramatically improve performance.
In his blog post from 2022, Glen Oakley , Senior Software Engineer at Discord, wrote about the reason to implement it inhouse “no such disk exists, at least not within the ecosystem of common cloud providers.” As Glen noted in the blog post: “By using local SSDs as a cache, we can get the best of both worlds: the durability and ease-of-use of network block storage, with performance that rivals local disks.” This is what simplyblock is. But it’s always good to have a real-world example from a major tech player to underscore the validity and importance of local caching solutions like simplyblock’s. It’s clear that the challenge of balancing performance and cost-effectiveness in cloud storage is a widespread concern, and innovative and standardized caching solutions are emerging as a powerful answer. Who knows how many people built their own workaround already. Even during my time at Hazelcast, I kept telling people “don’t roll your own caching, it comes back to bite you,” as caching is commonly more complicated than just storing stuff.
Anyhow, I can totally recommend reading the full blog post from Glen which can be found on Discord’s blog site .
Simplyblock’s Architecture: a Closer look
While the concept behind simplyblock’s local SSD caching is straightforward, the implementation is special in more than one regard and designed for highest storage optimization. Let’s dive deeper into simplyblock.
SPDK Integration
Simplyblock’s storage engine is built upon the Storage Performance Development Kit (SPDK), but extends it with data distribution, cluster management, erasure coding, and more. SPDK is a set of tools and libraries designed to write high-performance, scalable, user-mode storage applications. By integrating SPDK, simplyblock ensures that its storage solution is not only effective but also highly efficient and scalable.
Flexible Configuration
One of the standout features of simplyblock’s implementation is its flexibility. You can easily configure logical volumes, their performance profiles, and caching properties to suit your specific needs. This includes setting up custom cache sizes, choosing between different caching algorithms, and fine-tuning other parameters to optimize performance for your unique workloads.
Seamless Integration
Simplyblock has designed its caching functionality to be as seamless and transparent to you as possible. This means you can implement this performance-boosting feature without disrupting your current infrastructure or requiring significant changes to your workloads.
Intelligent Cache Management
Behind the scenes, simplyblock’s caching solution employs algorithms to effectively manage the data and caches. This includes:
Intelligent data placement to ensure the most frequently accessed data is always readily available Efficient cache eviction policies to make room for new data when the cache fills up Consistency mechanisms to ensure data integrity between the cache and the main storage volume (write-through and read-behind)
The Bigger Picture: Transforming Storage Performance
Simplyblock’s local SSD caching functionality represents more than just a performance boost – it is a paradigm shift in how we approach storage in the cloud era. By bridging the gap between high-performance local storage and the flexibility of network-attached volumes, simplyblock is paving the way for a new generation of storage solutions.
This innovation has far-reaching implications across various industries and use cases:
- High-Performance Computing : Research institutions and scientific organizations can accelerate their data-intensive computations without breaking the bank on all-flash arrays.
- Databases: High velocity databases that benefit from low access latency and high throughput to quickly read data from disk for large reports or real-time data analytics.
- Observability: Append-only or append-mostly storage engines and analytics platforms, running large aggregations and anomaly detection algorithms.
- AI / Machine Learning: Running the latest LLMs (Large Language Models) or other AI workloads and training sets requires large amounts of data and high performance storage but also consistent latency for predictable runtime performance.
- Financial Services : Banks and fintech companies can enhance the speed of their transaction processing and analytics workloads, improving customer experiences and decision-making capabilities.
- Media and Entertainment : Content delivery networks can cache frequently accessed media files locally, reducing latency and improving streaming quality.
- E-commerce : Online retailers can boost the performance of their product catalogs and recommendation engines, leading to faster page loads and improved customer satisfaction.
- Your High Performance Workload: Whatever your data-intensive, low-latency sensitive and high-performance use case looks like, simplyblock’s storage solution can help you with a fully cloud-native solution.
Looking Ahead: the Future of Storage Performance
As data volumes continue to grow exponentially year-over-year and workloads, such as databases, become increasingly demanding, solutions like simplyblock’s local SSD caching will play a crucial role in shaping the future of storage performance. We can expect to see further innovations in this space, including:
More sophisticated caching algorithms leveraging machine learning to predict and preload data Tighter integration between caching solutions and emerging technologies like persistent memory Expansion of caching concepts to other areas of the data center, such as network and compute resources
Conclusion: Free the Full Performance Potential of your Data
In an era where data is the breath of our businesses, the ability to access and process information quickly can make or break an organization’s success. Simplyblock’s local SSD caching functionality represents a significant leap forward in our ability to harness the full performance potential of our data.
By offering a solution that combines the performance of local SSDs with the flexibility and scalability of network-attached storage, simplyblock is empowering businesses to achieve unprecedented levels of storage performance without sacrificing cost-effectiveness or ease of use and management.
As we look to the future, it’s clear that innovations like simplyblock’s caching functionality will play a pivotal role in shaping the next generation of data storage and processing technologies. For organizations looking to stay ahead of the curve and unlock the full potential of their data, embracing these cutting-edge solutions is not just an option – it’s a necessity.
Learn more about simplyblock and its innovative storage solutions.
You may also like:
AWS Storage Optimization: Best Practices for Cost and Performance
AWS Migration – How to Migrate into the Cloud? Data Storage Perspective.
What are AWS Credits and how to get them?