Storage Data Placement Across Classes for Cost and Reliability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage systems face inefficiencies in data management and reliability, particularly in flash storage systems, due to redundant write operations and lack of centralized control over storage processes, leading to increased wear and reduced reliability.
Innovation Solution
Implementing a direct-mapped flash storage system where the operating system directly addresses data blocks without translation by storage controllers, offloading device management tasks, and utilizing non-volatile RAM for quick data buffering and proactive data rebuilding across multiple storage nodes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If storage controllers translate and manage data blocks, then data management control is improved, but device complexity and redundant write operations increase
Solution Approach 1:
The patent extracts the data translation and management functions from the storage controller and places them directly in the operating system. The OS now directly addresses flash data blocks without controller intervention, eliminating the controller's role in data path management while maintaining OS control over storage operations.
Solution Approach 2:
The storage system implements self-service through the OS directly managing flash data blocks without controller mediation. The system uses wear leveling algorithms and data placement strategies implemented in the OS to handle what previously required controller translation, reducing controller complexity while maintaining management capabilities.
2Reliability
If redundant write operations are performed for reliability, then data integrity is improved, but flash memory wear and write amplification increase
Solution Approach 1:
The patent implements preliminary wear leveling and data placement strategies where the OS proactively manages data block placement before writes occur. By pre-positioning data and managing block allocation at the OS level, the system reduces the need for redundant writes while maintaining reliability through controlled data placement and wear distribution.
Solution Approach 2:
The system changes the operational parameters of flash memory by implementing OS-level wear leveling algorithms that dynamically adjust write patterns, data placement, and block management. This transforms the write operation characteristics to minimize redundant writes while maintaining data integrity through intelligent parameter management.
3Reliability
If data is distributed across multiple storage nodes, then data availability is improved, but system complexity and coordination overhead increase
Solution Approach 1:
The patent segments the storage system into multiple independent storage nodes, each managing its own flash data blocks directly under OS control. This segmentation distributes data across nodes while maintaining simple individual node operations, as each node handles its own data blocks without requiring complex inter-node coordination for basic write operations.
Solution Approach 2:
Each storage node implements universal functionality by handling complete data management operations (write, read, wear leveling) independently under OS control. This multi-functionality at the node level eliminates the need for specialized coordination mechanisms, as each node can autonomously manage its data blocks while contributing to overall system availability.
Data Source
AI summary
Cost considerate placement of data within a pool of storage resources, including: receiving one or more data objects for storage; selecting, based at least upon a storage policy and upon one or more characteristics of storage data, one or more storage classes from among a plurality of storage classes of one or more data storage services, wherein the storage policy specifies parameters for one or more of: storage costs, storage operation response time, data resiliency, or service level agreement specifications; and storing the one or more data objects to the selected one or more storage classes of the one or more data storage services.


