Sync Framework Extensibility for File Coherency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing system-level and file system-level sync engines are limited in their ability to share synchronization responsibilities with arbitrary applications, particularly in scenarios like collaborative concurrent editing, where conflicts may arise, and they cannot temporarily relinquish synchronization control to applications.
Innovation Solution
A sync framework extension that allows arbitrary applications to temporarily suspend synchronization, register custom functions, and manage file synchronization independently, using an API to coordinate file handling and resolve conflicts, while maintaining system-level access and ensuring file coherency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the sync engine maintains system-level synchronization control, then file coherency is maintained across cloud and client devices, but arbitrary applications cannot perform custom synchronization or manage file instances independently
Solution Approach 1:
The sync framework dynamically adjusts its synchronization behavior based on application needs. Applications can temporarily suspend sync engine control through synchronization locks, enabling custom synchronization logic during critical operations, then resume normal sync operations afterward. This dynamic switching resolves the contradiction by allowing both system-level coherency and application-level custom synchronization at different times.
Solution Approach 2:
The synchronization control is segmented into distinct operational modes: normal sync mode where the sync engine maintains file coherency, and custom sync mode where applications can perform independent synchronization. Synchronization locks create boundaries between these modes, allowing applications to temporarily take control of specific files without affecting overall system coherency maintenance.
2Adaptability or versatility
If the application assumes total responsibility for the file from the sync engine, then custom synchronization can be implemented, but the sync engine cannot provide system-level access or maintain overall synchronization
Solution Approach 1:
The sync framework acts as an intermediary between applications and the sync engine. Applications request synchronization locks from the sync framework, which manages the transition of control. This intermediary mechanism allows applications to assume responsibility for custom synchronization while the sync framework maintains system-level access and coordinates with the sync engine to preserve overall synchronization integrity.
3Reliability
If the sync engine continuously synchronizes files, then file coherency is maintained, but applications experiencing conflicts cannot temporarily suspend synchronization control
Solution Approach 1:
Applications can preemptively acquire synchronization locks before conflicts occur during collaborative editing or custom synchronization operations. This preliminary action prevents the sync engine from performing synchronization operations that would cause conflicts, allowing applications to suspend sync control temporarily and handle synchronization themselves when needed.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Embodiments described herein may involve enabling applications to cooperate with a system-level sync framework. The sync framework may provide system synchronization of files between user devices and a cloud storage service. Arbitrary applications on a user computing device can communicate with the sync framework to temporarily suspend synchronization of a specified file by the sync framework. The application can register functions with the sync framework that the sync framework can invoke in relation to suspending synchronization, continuing to provide system-level access to the file for arbitrary applications, and resuming synchronization.