Lookup Structure for Hierarchical Reference Counting
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
File systems implementing hierarchical reference counting are incompatible with lookup structures, preventing them from benefiting from performance improvements offered by lookup structures like buffer hashes, as hierarchical reference counting requires traversing the file system tree to determine correct reference counts, while lookup structures skip this traversal.
Innovation Solution
The integration of lookup entry generation counts and file system info generation counts allows the use of lookup structures with hierarchical reference counting, ensuring accurate reference count determination by comparing these counts to validate the use of lookup entries and traversing the file system tree only when necessary, thereby enabling efficient snapshot and file clone operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If hierarchical reference counting is implemented, then reference count accuracy is improved, but performance deteriorates due to required file system tree traversal
Solution Approach 1:
The patent applies preliminary action by maintaining lookup entries that are pre-computed and stored in a lookup structure before they are needed. When a page is accessed, the reference count can be determined by consulting the pre-existing lookup entry rather than traversing the file system tree, thus preparing the reference count information in advance to avoid costly traversal operations later
Solution Approach 2:
The patent introduces a lookup structure as an intermediary between the file system tree and the reference counting mechanism. The lookup structure stores pre-computed reference count information and page location data, acting as a mediator that provides fast access to reference count information without requiring direct traversal of the file system tree, thus resolving the contradiction between accuracy and performance
2Measurement precision
If file system tree traversal is performed to determine reference counts, then reference count accuracy is improved, but access time increases
Solution Approach 1:
The lookup structure stores pre-computed reference count information and page physical locations that are calculated in advance during page allocation and file system operations. This preliminary computation eliminates the need for time-consuming tree traversal when reference counts are needed, as the information is already prepared and stored
Solution Approach 2:
The patent creates a copy of the file system tree's reference count information in the form of lookup entries stored in the lookup structure. These lookup entries contain copies of essential information (page physical locations and reference counts) that can be accessed directly without traversing the original file system tree, thus reducing access time while maintaining accuracy
3Productivity
If lookup structures are used to skip tree traversal, then performance is improved, but reference count accuracy deteriorates
Solution Approach 1:
The lookup structure stores reference count information that is pre-computed and validated before being stored. This preliminary computation ensures that the reference counts in the lookup entries are accurate reflections of the actual reference counts in the file system tree, allowing the lookup structure to provide both fast access and accurate reference count information
Solution Approach 2:
The patent implements a mechanism where the lookup structure's reference count information is kept synchronized with the actual file system state through feedback from file system operations. When pages are allocated, freed, or modified, the lookup structure is updated accordingly, ensuring that the reference count information remains accurate while still providing fast access without tree traversal
Data Source
AI summary
Techniques are provided for supporting a lookup structure for a file system implementing hierarchical reference counting. A write operation to write data to a page maintained by the file system is received. A lookup within a lookup structure is performed using information related to the page in order to identify a lookup entry within the lookup structure. A hash generation count within the lookup entry is compared to a file system info generation count within a file system info object for a volume associated with the page. In response to the lookup entry generation count not matching the file system info generation count, a file system tree of the file system is traversed to determine a reference count for the page, and the write operation is implemented based upon the reference count. Otherwise, the lookup entry is utilized to access the page for processing the write operation.


