Inode Reuse in Synchronous Storage Replication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing synchronous replication techniques face challenges in maintaining data consistency and efficiency, particularly during transition operations and hole reservation management, leading to potential data loss and increased latency.
Innovation Solution
Implementing a system that intercepts operations to split and replicate them in parallel, with mechanisms for timestamp consistency, on-demand inode growth, access control list parity, and hole reservation flag replication, ensuring data integrity and efficient resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If synchronous replication is implemented with parallel operation execution, then data consistency and reliability are improved, but system complexity and coordination overhead increase
Solution Approach 1:
The patent introduces a splitter component as an intermediary that intercepts operations before they reach the file system, divides them into primary and replication operations, and coordinates their execution. This mediator manages the complexity of synchronous replication by centralizing the coordination logic and isolating the file system from replication concerns.
Solution Approach 2:
The patent segments operations into distinct components: the original operation targeting the first storage object and a replicated operation targeting the second storage object. This segmentation allows independent execution and tracking of each operation while maintaining synchronization through the splitter's coordination mechanism.
2Reliability
If inode allocation is pre-managed for replication, then data integrity is maintained, but storage resource utilization decreases due to unused inodes
Solution Approach 1:
The patent performs preliminary actions by creating placeholder inodes in advance for potential replication operations. These pre-allocated inodes ensure that when replication operations need to be executed, the necessary inode resources are already available, maintaining data integrity without requiring complex real-time allocation decisions.
Solution Approach 2:
The patent implements a mechanism to discard and recover unused inodes. When pre-allocated inodes are not needed for replication (because the original operation didn't require replication or the replication succeeded), those inodes are freed back to the inode pool, allowing them to be reused for future operations and improving overall storage resource utilization.
3Ease of manufacture
If transition operations are handled with traditional methods, then simplicity is maintained, but data loss may occur during replication synchronization
Solution Approach 1:
The patent implements feedback mechanisms where the splitter monitors the execution status of both primary and replication operations. When a transition operation occurs or an operation completes, the splitter receives feedback about the state of replication and adjusts its behavior accordingly, ensuring data consistency without requiring complex manual intervention.
Solution Approach 2:
The patent prepares cushioning measures in advance by maintaining a buffer or queue mechanism that can hold operations during transition states. This allows the system to handle synchronization issues gracefully by temporarily storing operations rather than risking data loss, while keeping the overall process relatively simple through automated buffer management.
Data Source
AI summary
Techniques are provided for freeing and utilizing unused inodes. For example, an operation, targeting a first storage object of a first node having a replication relationship with a second storage object of a second node, is intercepted. A replication operation is created as a replication of the operation. The operation is implemented upon the first storage object and the replication operation is implemented upon the second storage object. A determination is made that the replication operation uses an inode no longer used by storage objects of the second node. The inode targeted by the replication operation is freed and utilized based upon the inode being a leaf inode. If the inode is a stream directory inode, then data streams of the stream directory inode are moved under a new private inode and the stream directory inode is released.


