Global Virtual Inode Number Tracking in Snap-Based Filesystems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data storage systems face inefficiencies in managing virtual inode numbers (VINs) across multiple snapshots of a real filesystem, leading to resource-intensive and wasteful processes for allocation, updating, and deletion of VINs.
Innovation Solution
A global VIN management system employs a distributed weight mechanism, where each VIN has a total weight stored in a corresponding VIN metadata object, allowing for efficient tracking and sharing of VINs across snapshots, and includes a hierarchal mapping system to manage VINs, enabling faster and less resource-intensive operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional inode sharing mechanism is used across multiple snapshots, then file data sharing is achieved, but VIN management becomes resource-intensive and inefficient
Solution Approach 1:
The patent segments the VIN management system by introducing a global VIN space that is independent of snapshot boundaries. Instead of managing VINs within each snapshot separately, the system divides VIN management into global allocation (across all snapshots) and local mapping (within each snapshot), reducing redundant operations and improving efficiency.
Solution Approach 2:
The patent implements a universal VIN metadata object that serves multiple snapshots simultaneously. A single VIN metadata object can track and manage the same VIN across multiple snapshots, allowing one object to perform multiple functions (tracking VIN allocation, sharing status, and weight distribution) across different snapshot contexts, thereby reducing overall resource consumption.
2Adaptability or versatility
If separate VIN management is implemented for each snapshot, then snapshot independence is maintained, but system complexity and overhead increase
Solution Approach 1:
The patent introduces an intermediary global VIN metadata object that mediates between multiple snapshots and the underlying file system. This intermediary layer handles VIN allocation and tracking centrally, allowing individual snapshots to maintain independence while reducing overall system complexity through centralized management of common VINs.
Solution Approach 2:
The patent merges the management of identical VINs across multiple snapshots by using a single global VIN metadata object. When the same VIN appears in multiple snapshots, the system combines their management into one unified structure, reducing complexity while preserving snapshot independence through weight-based tracking.
3Reliability
If VINs are allocated independently for each snapshot, then snapshot isolation is ensured, but resource waste occurs due to duplicate VIN allocations
Solution Approach 1:
The patent implements a feedback mechanism through the weight field in the global VIN metadata object. When a VIN is allocated to a snapshot, the weight is updated to reflect the allocation. When snapshots are created or deleted, the system checks the weight to determine whether to allocate or release the VIN, ensuring efficient resource utilization while maintaining snapshot isolation through proper weight tracking.
Solution Approach 2:
The patent enables recovery of VIN resources by tracking allocation weights. When a snapshot is deleted or a VIN is no longer needed, the system checks if the weight reaches zero (indicating no active references), at which point the VIN can be discarded from the global space and recovered for reuse, preventing resource waste while maintaining isolation during active use.
Data Source
AI summary
Technology described herein can globally perform management of virtual inode numbers (VINs) of all snapshots of a real filesystem. In an embodiment, a system can comprise a processor and a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations. The operations can comprise, in response to a request to generate a primary snapshot of a real filesystem, allocating a primary instance of an individual VIN for a virtual inode corresponding to the primary snapshot, resulting in an allocated VIN having associated therewith a weight expressed as a value. The operations further can comprise storing the weight for the allocated VIN at a corresponding VIN metadata object exclusive to the VIN.


