Version Tree Structure for Server-Client Sync Conflict Resolution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing file server systems face challenges in managing file versions when multiple users edit the same file simultaneously, leading to Optimistic Concurrency failures, data loss, and increased complexity in resolving conflicts, particularly due to the need for forking files which results in disconnected versions and increased disk space usage.
Innovation Solution
Implementing a version tree structure on the file server to store multiple versions of a file, where changes are saved as branches from the current version, allowing users to manage conflicts and maintain version relationships without immediate user intervention, and providing a user interface for resolving conflicts and merging changes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the server uses Optimistic Concurrency model with version numbers to allow clients to modify files, then file collaboration is enabled, but Optimistic Concurrency failures occur when clients modify files based on outdated versions
Solution Approach 1:
The patent transitions from a linear version history (one-dimensional sequence of versions) to a tree-structured version history (multi-dimensional hierarchy with branches and merges). This allows clients to operate on different branches simultaneously without conflicts, as each branch represents an independent line of development. The tree structure adds the dimension of branching and merging, enabling multiple concurrent modifications while maintaining reliability through structured conflict resolution.
2Reliability
If clients fork files to resolve conflicts by creating new independent files, then data loss is prevented, but file relationships are broken and disk space increases
Solution Approach 1:
The patent implements merging operations that combine changes from different branches back into a unified version history. Instead of creating permanently separate forked files, the system merges conflicting changes into a single version tree, preserving file relationships while preventing data loss. The merge operation consolidates multiple lines of development into a coherent history, eliminating the need for permanent file duplication.
Solution Approach 2:
The version tree structure nests child versions within parent versions, creating a hierarchical organization where each version contains references to its parent and siblings. This nesting allows the system to maintain compact storage by organizing versions hierarchically rather than creating separate independent files. The nested structure preserves all version relationships while reducing overall disk space requirements compared to true forking.
3Device complexity
If the server stores all file versions in a linear sequence, then version history is simple to implement, but conflict resolution becomes complex and disk space consumption increases
Solution Approach 1:
The patent segments the linear version sequence into branching segments, where each version can have multiple child versions representing different modification paths. This segmentation allows the system to store only the necessary versions along each branch rather than duplicating all versions linearly. The segmented tree structure reduces redundant storage while maintaining complete version history for conflict resolution.
Data Source
AI summary
A file server and a method of operating a file server where version identifiers for documents on the server are maintained as a branched tree. When a client computer attempts to sync up a new version of a file, it must upload the version identifier that it received when it synced down the file. The file server compares this version identifier to the numbers in its version tree for the file and may place the document in the correct place in the tree structure, which may not be as the “latest version” of the document. If the client is using an outdated version of the document, the server may also sync down the latest version of the file. The user may view the changes to the version tree and reconcile different versions to create an authoritative version, and this review and reconciliation may occur at any time, instead of being performed at the moment that the file is saved or forking the file into a new filename.


