Segmented System Table Storage for Coherency and Fast Loading
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Non-volatile storage systems face challenges in efficiently loading and updating system table data, particularly in maintaining data coherency and avoiding delays, especially when dealing with large system tables and partial segment loading.
Innovation Solution
The implementation of progressive flushing of system table data from volatile memory to non-volatile storage, without the need for log data, allows for efficient loading of partial segments while maintaining data coherency, using a controller to manage the storage and reconstruction of table data across superblocks with a predefined ratio of page updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If system table data is loaded from non-volatile memory into volatile memory, then data access speed is improved, but memory access delays increase due to loading and updating operations
Solution Approach 1:
The system table is divided into multiple segments that can be independently loaded into volatile memory. Only the segments that are currently needed are loaded, rather than loading the entire system table. This segmentation allows for selective loading that reduces memory access delays while maintaining fast access to the required data portions.
Solution Approach 2:
The system pre-loads system table segments into non-volatile memory before they are needed, and maintains a cache of recently accessed segments in volatile memory. This preliminary action ensures that when data access is required, the segments are already available or can be quickly retrieved, reducing memory access delays while maintaining fast access speed.
2Reliability
If log data is used to track changes to system table, then data coherency is improved, but storage complexity and access time increase
Solution Approach 1:
Instead of using complex log data structures to track changes, the system creates simplified copies of the system table segments directly in non-volatile memory. These copies contain the necessary data coherency information without the overhead of traditional logging mechanisms. The copying approach maintains data reliability while reducing storage complexity and access time.
3Productivity
If complete system table is loaded into volatile memory, then data access efficiency is improved, but power-up time increases
Solution Approach 1:
The system table is segmented into multiple smaller units that can be loaded independently. During power-up, only the essential segments required for immediate operation are loaded into volatile memory, significantly reducing power-up time. Additional segments are loaded on-demand or in the background, maintaining data access efficiency without requiring the complete table to be loaded upfront.
4Reliability
If system table data is stored in non-volatile memory, then data persistence is improved, but loading efficiency decreases
Solution Approach 1:
The system loads only the necessary portions of the system table data from non-volatile memory into volatile memory, rather than loading the complete table. This partial action approach maintains data persistence by keeping the full table in non-volatile storage while improving loading efficiency by transferring only the required segments, reducing both power-up time and memory access delays.
Data Source
AI summary
A data storage subsystem is disclosed that implements a process for storing and/or reconstructing system data, such as a system mapping table. In certain embodiments, table pages are systematically copied, or flushed, to non-volatile memory in a progressive manner, according to a fixed ratio of flushed table pages per table update trigger, thereby facilitating write and/or load efficiency. Full or partial reconstruction of a table may be performed within a bounded number of operations based on the size of the table, the ratio implemented, and/or other characteristics.


