Directory Delegation for Coherent Client-Side File Caching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Maintaining cache coherency in client side caching systems is challenging as local cache information can become outdated when file system elements change on the server, leading to inefficiencies and resource utilization issues.
Innovation Solution
Implementing directory delegation in client side caching systems to manage file system elements and receive notifications of updates, allowing for cache updates and preloading to ensure accurate and up-to-date information in the local cache.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If client side caching is used to store state information locally, then network interactions are reduced and performance is improved, but cache coherency becomes difficult to maintain when file system elements change on the server
Solution Approach 1:
The system implements a feedback mechanism where the client receives notifications from the server when file system elements change. The directory delegation notification serves as feedback that triggers cache invalidation or updating, ensuring cache coherency is maintained without requiring continuous active polling. This allows the cache to remain reliable while still providing performance benefits through localized storage.
Solution Approach 2:
The client proactively requests directory delegation and sets up notification mechanisms in advance before changes occur. By establishing the delegation relationship beforehand, the system ensures that when changes happen, the client is already positioned to receive notifications immediately, maintaining cache coherency without delaying actions or requiring reactive polling.
2Reliability
If the client continuously polls the server for updates to maintain cache coherency, then cache accuracy is improved, but network interactions increase and performance decreases
Solution Approach 1:
Instead of continuous polling, the system uses event-driven periodic action where the server sends notifications only when changes occur. This transforms the periodic action from a fixed time-based poll to an event-based trigger, maintaining cache coherency only when necessary while minimizing unnecessary network interactions and preserving performance.
Solution Approach 2:
The server automatically generates and sends notifications to the client when file system elements change, eliminating the need for the client to actively poll. This self-service mechanism ensures the client receives updates autonomously, maintaining cache coherency without the performance penalty of continuous client-initiated polling.
3Reliability
If directory delegation is implemented to receive notifications of updates, then cache coherency is maintained with reduced network interactions, but device complexity increases
Solution Approach 1:
The directory delegation mechanism acts as an intermediary layer between the client and server. Instead of the client directly managing all cache coherency aspects through complex polling logic, the delegation intermediary handles the notification routing and change detection, simplifying the client's complexity while ensuring reliable cache coherency through structured communication protocols.
Data Source
AI summary
Architectures and techniques are described that can leverage directory delegation functions or techniques in order to provide cache coherency. The disclosed techniques can operate for a client side cache that exists in either the user space or domain or the kernel space or domain. A directory delegation request can be transmitted to a file system server that requests a notification relating to updates to a specified file system element (e.g., a file). In response to receiving an associated directory delegation notification, information in the notification can be employed to perform a client side cache update procedure and/or a client side cache preload procedure.


