Dynamic Storage Caching Based on Hardware Battery Backup
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software-defined storage systems do not effectively utilize the capabilities of underlying hardware, leading to suboptimal caching performance, as they fail to differentiate between hardware with and without battery backup for DRAM, resulting in inefficient use of non-volatile memory (NVM) and dynamic random access memory (DRAM).
Innovation Solution
The storage software dynamically determines the availability and capacity of NVM and DRAM based on hardware configuration, selecting appropriate cache modes for I/O requests to optimize caching, using NVM for write caching without battery backup and DRAM with battery backup, and managing cache capacity to balance read and write operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If storage software uses a fixed caching strategy regardless of hardware configuration, then implementation is simple, but caching performance is suboptimal
Solution Approach 1:
The storage software dynamically adjusts caching strategies based on detected hardware configuration. The system probes for battery backup presence and automatically selects appropriate cache modes (write-back with battery vs. write-through without battery), transforming a static software approach into a dynamic one that adapts to runtime hardware conditions.
Solution Approach 2:
The storage software autonomously detects hardware capabilities and configures caching parameters without external intervention. The system performs self-probing for battery backup and automatically determines optimal caching behavior, eliminating the need for manual configuration or complex external control mechanisms.
2Productivity
If storage software uses DRAM for write caching without battery backup, then write performance improves, but data integrity is compromised during power loss
Solution Approach 1:
The storage software implements feedback by continuously monitoring hardware configuration (battery backup presence) and adjusting caching behavior accordingly. When battery backup is detected, the system enables write-back caching; when absent, it switches to write-through caching, creating a closed-loop control system that maintains data integrity based on power protection availability.
Solution Approach 2:
The system changes the caching parameter (write-back vs. write-through mode) based on the detected presence or absence of battery backup. This parameter adjustment allows the system to optimize write performance when protected by battery while ensuring data integrity when unprotected, resolving the contradiction between speed and reliability.
3Reliability
If storage software uses NVM for write caching without battery backup, then data integrity is maintained, but write performance is reduced compared to DRAM
Solution Approach 1:
The system dynamically changes the cache memory parameter based on hardware capability detection. When battery backup is present, DRAM is used for superior write performance; when absent, NVM is selected to maintain data integrity. This parameter switching resolves the performance-reliability tradeoff by matching cache technology to power protection availability.
4Adaptability or versatility
If storage software does not detect hardware configuration, then implementation is simpler, but hardware capabilities are not fully utilized
Solution Approach 1:
The storage software performs self-detection of hardware configuration through probing mechanisms. It automatically identifies battery backup presence and other hardware capabilities, then configures caching parameters accordingly. This self-service approach enables full hardware utilization without requiring complex external detection infrastructure.
Data Source
AI summary
Examples implementations described herein involve systems and methods wherein the storage software is configured to consider the capabilities of the underlying hardware to determine the caching data method at run time. Some examples of capabilities that are considered in the example implementations include whether non-volatile memory (NVM) is available and how much NVM is available. Some examples of caching methods used include using both dynamic random access memory (DRAM) and NVM to cache write data and using only NVM to cache write data.


