Data Sync Cache for Hierarchical Object Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data transfer mechanisms in multi-tenant computing systems face performance issues due to varying characteristics, leading to failed syncs and repeated attempts to resync data, which are costly in terms of performance and resources.

Innovation Solution

A data sync cache is implemented to store sync information for parent data objects, allowing higher performance synchronization engines to confirm successful syncs before initiating child data object syncs, thereby reducing the need for repeated API calls and ensuring successful child data object syncing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional data transfer mechanisms are used to sync data between datastores, then data synchronization is achieved, but performance costs increase due to failed syncs and repeated API calls

Engineering Contradiction:
Improvesync success rateVSAvoiddata sync efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs a cache lookup of parent data object sync information before initiating child data object synchronization. This preliminary check ensures that parent objects are successfully synced before their children are processed, preventing failed syncs and reducing the need for repeated API calls, thereby improving both reliability and productivity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses a data sync cache that stores and tracks sync status information of parent data objects. This feedback mechanism allows the synchronization process to verify parent object status before proceeding with child objects, enabling informed decision-making that reduces failed operations and improves overall sync efficiency

Inventive Principle:
Principle #23Feedback

2Reliability

If parent data object sync status is verified before child data object sync, then sync reliability improves, but additional cache lookup operations are required

Engineering Contradiction:
Improvechild data object sync reliabilityVSAvoidsynchronization process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system introduces a data sync cache as an intermediary component that stores parent data object sync information. This cache acts as a mediator between the parent and child synchronization processes, providing quick verification of parent status without adding significant complexity to the overall system architecture

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system creates a copy of parent data object sync information in a data sync cache. This cached copy allows for rapid verification of parent sync status without requiring complex real-time checks, simplifying the synchronization process while maintaining high reliability

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11669547B2Parallel data synchronization of hierarchical data
Publication Date: 2023.06.06 ZUORA INC
  • US11669547B2 patent drawing
  • US11669547B2 patent drawing
  • US11669547B2 patent drawing

AI summary

A data sync cache is maintained to facilitate syncing of child data objects between a first computing system and a second computing system. Responsive to successful syncing of a parent data object of a child data object by a first sync engine, parent object data sync information indicating that the parent data object was successfully synced is written to the data sync cache. Prior to initiating a sync of the child data object by a second sync engine different from the first sync engine, a cache lookup of the data sync cache is performed to determine if the sync information is contained therein. If the data sync cache includes the sync information, the child data object sync is initiated. In this manner, failed syncs of child data objects are reduced along with the expensive API calls to the second computing system that would otherwise be required to retry failed syncs.