Volatile File Versioning for Corruption-Resilient Sync
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional endpoint devices do not maintain multiple versions of secure files in the secure data cache, leading to file corruption and the need for reacquiring backup versions after system failures, which increases network load.
Innovation Solution
Endpoint devices periodically sync files in volatile memory to nonvolatile memory, maintaining multiple versions of files in volatile memory, including an oldest, newest, and candidate version, allowing access to a valid version from volatile memory after a system failure.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If files are maintained only in volatile memory for quick access, then device performance is improved, but files become vulnerable to corruption during system failures
Solution Approach 1:
The file storage is segmented into multiple versions (oldest, candidate, newest) with different modification permissions. The oldest version is marked as not modifiable and serves as a protected backup, while the candidate and newest versions can be modified during their respective time intervals. This segmentation allows the system to maintain fast access to the newest version while having a protected fallback option.
Solution Approach 2:
The system performs preliminary actions by creating and protecting the oldest version of the file before system failures can occur. By maintaining a not-modifiable oldest version that was created before the previous sync interval, the system prepares a safe fallback option in advance, so that if the current file becomes corrupt, a valid previous version is already available.
2Reliability
If multiple versions of files are maintained in volatile memory, then access to valid versions after system failure is enabled, but device memory usage and complexity increase
Solution Approach 1:
The system uses periodic sync intervals to manage file versions. During each sync interval, specific versions of the file are marked as modifiable or not modifiable based on the timing. This periodic management approach automates the version control process, reducing the complexity of manually managing multiple file versions while ensuring reliability.
Solution Approach 2:
The modification permissions of file versions are dynamic rather than static. The oldest version is initially not modifiable but can become modifiable after the sync interval expires. The candidate version transitions from modifiable to not modifiable as it becomes the oldest version. This dynamic permission system allows flexible memory management while maintaining file integrity.
3Productivity
If files are frequently updated in the secure data cache, then device performance is improved, but the risk of file corruption during updates increases
Solution Approach 1:
Different parts of the file versioning system have different qualities and permissions. The oldest version has the quality of being not modifiable and protected, while the candidate and newest versions have the quality of being modifiable during their respective intervals. This local differentiation of qualities allows frequent updates to the newest version while protecting the oldest version from corruption.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Various embodiments disclose a method for maintaining file versions in volatile memory. The method includes storing, in volatile memory for at least a first portion of a first sync interval, a first version of a file that is not modifiable during the at least the first portion of the first sync interval. The method also includes storing, in volatile memory for at least a second portion of the first sync interval, a second version of the file that is modifiable during the at least the second portion of the first sync interval. The method also includes subsequent to the first sync interval, replacing in nonvolatile memory, a third version of the file with the first version of the file stored in volatile memory. Further, the method includes marking the second version of the file as not modifiable during at least a first portion of a second sync interval.