Offline Directory Synchronization Using Tombstone Records
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing operating systems do not allow users to delete or rename cached directories while offline, which creates synchronization challenges when reconnecting to a remote data store.
Innovation Solution
The system allows clients to modify their local copies of directories and store tombstones indicating directory changes, enabling synchronization of these changes with the remote data store upon reconnection, using resolution conflict mechanisms.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If the system allows directory deletion or renaming while offline, then offline operational flexibility is improved, but synchronization complexity increases due to potential conflicts with server-side changes
Solution Approach 1:
The system performs preliminary actions by creating tombstone records for directory deletions or renames before actual synchronization occurs. These tombstones are prepared in advance during offline operations, containing all necessary information (original path, new path if renamed, timestamp) to enable conflict-free reconciliation when the client reconnects to the server.
Solution Approach 2:
Tombstone records serve as intermediary objects that mediate between offline client operations and online server synchronization. Instead of directly applying directory deletions or renames to the server, the system uses tombstones as intermediate representations that can be safely stored, tracked, and resolved during synchronization, preventing direct conflicts.
2Reliability
If the system tracks all directory changes with tombstones, then data integrity during synchronization is improved, but storage overhead increases
Solution Approach 1:
The system extracts only the essential information needed for synchronization into tombstone records, separating this metadata from the actual directory contents. Each tombstone contains only the critical elements (path, operation type, timestamp, conflict resolution data) required to reconstruct or verify directory changes, minimizing storage overhead while maintaining data integrity.
Solution Approach 2:
Instead of storing complete directory state information, the system inverts the approach by storing only the differences (tombstones) that need to be synchronized. This inversion reduces storage requirements from maintaining full directory snapshots to tracking only incremental changes that occurred during offline periods.
3Reliability
If the system prevents directory deletions while offline, then synchronization conflicts are avoided, but offline functionality is restricted
Solution Approach 1:
The system performs preliminary actions by creating tombstone records for directory deletions or renames before actual synchronization occurs. These tombstones are prepared in advance during offline operations, containing all necessary information (original path, new path if renamed, timestamp) to enable conflict-free reconciliation when the client reconnects to the server.
Solution Approach 2:
Tombstone records serve as intermediary objects that mediate between offline client operations and online server synchronization. Instead of directly applying directory deletions or renames to the server, the system uses tombstones as intermediate representations that can be safely stored, tracked, and resolved during synchronization, preventing direct conflicts.
Data Source
AI summary
Aspects of the subject matter described herein relate to synchronizing for directory actions performed while offline. In aspects, file system objects that reside on a remote data store are made available for offline use. While offline, a client receives an indication that a directory is to be deleted or renamed. In response, the client modifies its local copy of the directory and its descendants if any and stores one or more tombstones that include information that the client can use when synchronizing the changes made to the directory when the client is reconnected to the remote data store. When the client reconnects to the remote data store, the client synchronizes changes made while offline with the remote data store. Resolution conflict mechanisms may be used during this synchronization.


