File System Object Versioning with Separate Version Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing file systems face inefficiencies in managing multiple versions of objects due to complications in object enumeration, increased chapter record size, and heightened search depth when version IDs are included in object records.
Innovation Solution
A tree data structure is used to store object versions, where each object record includes an object name, a current version file handle, and a version table file handle, with version IDs stored in a separate version table, allowing efficient enumeration and minimizing chapter record growth.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If version IDs are included in object records, then object versioning is supported, but chapter record size increases
Solution Approach 1:
The patent segments the version information storage by introducing a separate version table that is distinct from the chapter record. The version table stores version IDs and associated metadata, while the chapter record maintains only the object name and current version reference. This segmentation allows versioning functionality to be added without expanding the chapter record structure, resolving the contradiction between supporting multiple versions and maintaining compact record size.
Solution Approach 2:
The patent extracts version identification and management functionality from the object record itself and places it in a dedicated version table. By taking out the version tracking mechanism from the chapter record, the system achieves object versioning support while keeping the chapter record size minimal, as only essential object information remains in the chapter record.
2Adaptability or versatility
If version IDs are included in object records, then object versioning is supported, but search depth increases
Solution Approach 1:
The patent introduces a version table as an intermediary structure between the chapter record and the actual object versions. This intermediary layer manages version relationships and enables efficient retrieval of previous versions without increasing the search depth within the chapter record itself. The version table acts as a mediator that simplifies the versioning mechanism while maintaining efficient search operations.
3Reliability
If multiple versions of objects are stored, then object restoration capability is improved, but enumeration efficiency decreases
Solution Approach 1:
The patent segments the storage structure into chapter records for current object information and a separate version table for historical versions. This segmentation allows the file system to maintain efficient enumeration by querying only the chapter record for current objects, while previous versions are accessed through the version table only when needed for restoration, thus preserving both reliability and productivity.
Solution Approach 2:
The patent applies partial action by storing only the necessary version information (version IDs and references) in the version table rather than duplicating entire object data for each version. This partial storage approach enables object restoration capability while minimizing the overhead that would otherwise reduce enumeration efficiency.
Data Source
AI summary
Systems and methods for providing a file system with object versioning support are provided. Rather than adding object records for each version of an object to a chapter database, in one example, the chapter database may be limited to a single object record for a given object including: (i) a name of the object; (ii) an object file handle containing information regarding a file containing data of a current version of multiple versions of the object; and (iii) a version table file handle containing information regarding a file containing a version table. In this manner, enumeration of objects associated with a given chapter may be performed more efficiently and prior versions of objects may be maintained separately within the version table without causing disproportionate growth of object records and without increasing the search depth with objects that are not referenced by the search at issue.


