Three-Tiered Cache for Granular Data Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current client-side editing tools face difficulties in separating user changes and integrating server changes into the cache, as they mix server data, user changes, and view data within a single object, making it challenging to manage data synchronization effectively.
Innovation Solution
A three-tiered cache is automatically generated by an application program, with separate tiers for server data, client data, and view data, allowing for granular synchronization of edits and updates between these data objects.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a single cache is used to store server data, user changes, and view data together, then data storage is simplified, but it becomes difficult to separate user changes and integrate server changes
Solution Approach 1:
The patent divides the single cache into three separate tiers: server data object, client data object, and view data object. This segmentation allows each tier to store specific types of data independently, making it easy to separate user changes from server data and view data from both. The segmentation resolves the contradiction by maintaining simple storage through a unified three-tier structure while enabling precise data separation and integration operations.
Solution Approach 2:
The patent extracts view data from the traditional cache and places it in a separate view data object tier. This extraction allows view data (data being viewed but not yet saved) to be independently managed and synchronized only when necessary, rather than being mixed with server and client data. This resolves the contradiction by simplifying the cache structure through standardized extraction while improving ease of operation for data separation.
2Device complexity
If server data, user changes, and view data are mixed in a single object, then data management is simpler, but synchronization of server and client data becomes difficult
Solution Approach 1:
The patent segments data into three distinct tiers with clear boundaries: server data object (read-only from server), client data object (user changes), and view data object (unsaved edits). This segmentation enables reliable synchronization by allowing the system to compare and merge only the relevant client data object changes with server data, rather than attempting to synchronize mixed data. The segmentation maintains simple management through a unified structure while ensuring synchronization reliability.
Solution Approach 2:
The client data object serves as an intermediary between the server data object and view data object. It holds user changes that are ready to be synchronized to the server, acting as a buffer that separates the server's authoritative data from the client's unsaved edits. This intermediary structure ensures that synchronization operations are reliable by clearly defining what data should be transferred and what should remain local.
3Ease of operation
If a three-tiered cache is implemented with separate data objects, then data separation and synchronization are improved, but system complexity increases
Solution Approach 1:
The patent implements a nested structure where the three-tiered cache system contains multiple data objects that are logically nested within the overall cache architecture. The server data object, client data object, and view data object are nested in a hierarchy that reflects their dependency relationships, with the client data object potentially containing references to both server and view data. This nesting reduces perceived complexity by organizing the three-tier structure within a unified cache container.
Solution Approach 2:
The three-tiered cache structure serves multiple functions simultaneously: it stores data, manages synchronization, tracks user edits, and maintains view states. By designing the cache to be multi-functional, the patent reduces overall system complexity rather than increasing it, as a single unified structure performs what would otherwise require multiple separate systems.
4Reliability
If view data is stored separately from server and client data, then unsaved edits are better protected, but data integration becomes more complex
Solution Approach 1:
The patent extracts view data from the traditional mixed cache and places it in a dedicated view data object tier. This extraction protects unsaved edits by isolating them from server data, ensuring that view data is only synchronized to the server when explicitly committed by the user. The extraction simplifies data integration by providing clear rules: view data integrates with client data object when saved, and client data object integrates with server data object during synchronization, rather than requiring complex integration logic for mixed data.
Data Source
AI summary
Embodiments are provided for the granular data synchronization of multiple data objects. A three-tiered cache may be automatically generated by an application program. A server data object may be stored in a first tier and may include a first set of properties for a current state of data stored on a server. A client data object may be stored in a second tier and may include a second set of properties including one or more properties in the first set and/or un-persisted edits made to the first set. A view data object may be stored in a third tier and may include a third set of properties including un-persisted and unsaved edits made to the first or second set which are being viewed on a client. The server and client data objects may be synchronized to determine edits made to the data stored on the server.


