Reference Count Update Log for Cluster File Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In cluster file systems, updating block reference counts for tracking shared data extents often results in performance penalties due to multiple disk I/O operations and contention issues, especially during operations like file snapshot creation and deduplication.
Innovation Solution
Implementing a Reference Count Update Log (RCUL) that records reference count updates transactionally with fixed-size records, allowing these updates to be performed asynchronously in the background, independent of the size of the data structure and number of nodes, thereby reducing I/O contention and enabling parallel updates across nodes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If b-tree updates are performed for tracking reference counts during file operations, then reference count tracking accuracy is improved, but system performance deteriorates due to multiple disk I/O operations
Solution Approach 1:
The patent segments the reference count update process into two independent parts: (1) inline generation of reference count update log information during file operations, and (2) asynchronous application of these updates to the reference count table. This segmentation allows the accurate tracking function to be separated from the performance-critical path, eliminating the need for synchronous disk I/O during file operations while maintaining reference count accuracy.
Solution Approach 2:
The patent performs preliminary action by generating reference count update log information during inline file operations but deferring the actual application of these updates to a later asynchronous time. This allows the system to prepare all necessary update information without immediately performing the costly disk I/O operations, thereby improving performance while ensuring accuracy when updates are eventually applied.
2Measurement precision
If b-tree reference count updates are performed during cluster file system operations, then reference count accuracy is improved, but I/O contention increases
Solution Approach 1:
The patent introduces an intermediary component - the reference count update log - that acts as a buffer between file operations and the reference count table. This log captures all reference count update information during inline operations without immediately accessing the reference count table, thereby eliminating I/O contention during critical file operations while ensuring accurate updates are preserved for later application.
3Stability of the object's composition
If reference count updates are performed inline during file operations, then data consistency is improved, but operation speed deteriorates
Solution Approach 1:
The patent performs preliminary action by generating reference count update log information during inline file operations to maintain data consistency, but defers the actual application of these updates to an asynchronous background process. This approach preserves data consistency by ensuring updates are captured and applied, while improving operation speed by eliminating the synchronous waiting time for disk I/O operations to complete.
4Ease of operation
If b-tree structure is used for tracking reference counts, then reference count management is improved, but the structure becomes a source of contention in cluster environments
Solution Approach 1:
The patent segments the reference count management system into two independent components: (1) the b-tree structure for tracking reference counts, and (2) the reference count update log for capturing updates. By separating the update capture function from the update application function, the b-tree structure is no longer a source of contention during file operations, as updates are logged asynchronously without requiring immediate access to the b-tree.
Data Source
AI summary
Systems and methods for extent reference count updates are presented. In one embodiment; a reference count update method includes: receiving an indication of new reference association with an extent of a shared storage component; generating reference count update log information for a reference count update log to indicate the new reference association with an extent of a shared storage component, wherein the altering occurs inline; forwarding a successful data update indicator to initiator of activity triggering the new reference association with the extent of the shared storage component; and updating a reference count table in accordance with the information in the reference count update log, wherein the updating is included in a background process.


