Client-Side Caching for Seamless Offline File Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional client applications face disruptions when disconnected from remote servers, leading to inaccessible data, incoherent file operations, and increased network traffic, as they rely on the connection state and fail to maintain 'truth on the client' during connectivity interruptions.
Innovation Solution
Implementing a client-side caching infrastructure that persists files and protocol information, including access rights, on the local data store, allowing seamless operation across connectivity states by caching files automatically or manually, and enabling write-back caching to maintain data consistency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If client applications rely on remote server connection state for data access, then data consistency with server is maintained, but data accessibility during disconnection is lost
Solution Approach 1:
The system performs preliminary actions by caching file data, metadata, and protocol information on the client side before disconnection occurs. This allows the client to access cached data during offline periods without compromising eventual consistency with the server upon reconnection.
Solution Approach 2:
A client-side caching component acts as an intermediary between the client application and the remote server. This intermediary maintains a local copy of files and protocol information, enabling seamless operation during disconnection while preserving the ability to synchronize with the server when connected.
2Reliability
If server version of data is maintained during client-server conflicts, then data integrity on server is preserved, but client data visibility and coherence are lost
Solution Approach 1:
The system caches protocol information including object access rights and share access rights before disconnection. This preliminary caching ensures that client-side data modifications remain visible and coherent during offline periods, while maintaining the ability to resolve conflicts with server data upon reconnection.
Solution Approach 2:
The system creates local copies of not only file data but also protocol information and access rights. This comprehensive copying enables the client to maintain coherent data operations offline while preserving the ability to synchronize with the server version when connected, preventing data loss or incoherence.
3Ease of operation
If all files are cached to local data store, then offline access is enabled, but device storage requirements increase
Solution Approach 1:
The system applies local quality by caching files selectively based on their protocol information and access rights. Only files with appropriate caching permissions are stored locally, enabling offline access for authorized files while avoiding unnecessary storage consumption for files that should remain server-only.
Solution Approach 2:
The system changes the caching behavior based on protocol information parameters such as object access rights and share access rights. Files are cached or not cached depending on these parameters, allowing flexible storage management that enables offline access where permitted while conserving storage resources where not permitted.
4Ease of operation
If persistent caching is implemented, then seamless operation across connectivity states is achieved, but system complexity increases
Solution Approach 1:
The client-side caching component is designed to be universal by handling multiple protocols (SMB, Webdav) and multiple types of information (file data, metadata, access rights). This multi-functional approach consolidates what could be multiple separate systems into a single caching infrastructure, managing complexity while enabling seamless operation across different connectivity states.
Data Source
AI summary
The present invention provides a novel client side caching (CSC) infrastructure that supports transition states at the directory level to facilitate a seamless operation across connectivity states between client and remote server. More specifically, persistent caching is performed to safeguard the user (e.g., client) and/or the client applications across connectivity interruptions and/or bandwidth changes. This is accomplished in part by caching to a client data store the desirable file(s) together with the appropriate file access parameters. Moreover, the client maintains access to cached files during periods of disconnect. Furthermore, portions of a path can be offline while other portions upstream can remain online. CSC operates on the logical path which cooperates with DFS which operates on the physical path to keep track of files cached, accessed and changes in the directories. In addition, truth on the client is facilitated whether or not a conflict of file copies exists.


