Three-Tiered Cache for Granular Data Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecache structureVSAvoiddata separation and integration
Core Design Contradiction:
Device complexityVSEase of operation

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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

Engineering Contradiction:
Improvedata management structureVSAvoiddata synchronization
Core Design Contradiction:
Device complexityVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvedata separation and synchronizationVSAvoidcache structure
Core Design Contradiction:
Ease of operationVSDevice complexity

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.

Inventive Principle:
Principle #7Nested doll (Nesting)

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Reliability

If view data is stored separately from server and client data, then unsaved edits are better protected, but data integration becomes more complex

Engineering Contradiction:
Improvedata integrityVSAvoiddata integration process
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8346869B2Granular data synchronization for editing multiple data objects
Publication Date: 2013.01.01 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8346869B2 patent drawing
  • US8346869B2 patent drawing
  • US8346869B2 patent drawing

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.