Call Graph Synchronization via Node Hash Comparison

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Call graphs struggle to efficiently express and synchronize the origins of datasets and versions of tasks in computing program execution sequences, limiting their ability to facilitate effective synchronization and merging of call graphs generated by multiple sources in complex workflows.

Innovation Solution

The use of hash values associated with nodes in call graphs allows for the identification and incorporation of missing nodes from one call graph into another, enabling consistent representation of different invocations and simplifying the synchronization process by comparing hash values to determine absent nodes and update the graphs accordingly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If call graphs are used to represent calling relationships in computing programs, then collaboration efficiency among contributors is improved, but the ability to efficiently express and synchronize origins of datasets and versions of tasks deteriorates

Engineering Contradiction:
Improvecollaboration efficiencyVSAvoidorigins of datasets and versions of tasks
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The call graph is segmented into multiple versions, with each version representing a specific invocation of a computing program. Each node in the call graph is associated with a hash value that identifies its version. This segmentation allows different contributors to work with different versions simultaneously while maintaining the ability to track origins of datasets and task versions through the version identifiers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Hash values are introduced as intermediary elements that mediate between the call graph structure and the version control system. Each node in the call graph is associated with a hash value that serves as a unique identifier for that version of the node. These hash values enable efficient comparison and synchronization of call graphs from different sources without requiring direct manipulation of the entire graph structure.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiple call graphs are generated from different sources in complex workflows, then comprehensive representation of computing sequences is improved, but the complexity of synchronizing and merging these call graphs increases

Engineering Contradiction:
Improverepresentation of computing sequencesVSAvoidsynchronization and merging process
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

Instead of directly merging complex call graph structures from multiple sources, the system creates copies of node information represented by hash values. Each call graph maintains its structure independently, but the synchronization process operates on copies of node identifiers (hash values) rather than the entire graph structures. This copying approach simplifies the merging process while maintaining comprehensive representation of all computing sequences.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system changes the parameter used for synchronization from complex graph structure comparison to simple hash value comparison. By representing each node with a hash value parameter, the synchronization process transforms from a complex structural alignment problem into a simpler parameter-based matching problem, significantly reducing the complexity of merging multiple call graphs.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12182202B2System, devices and/or processes for updating call graphs
Publication Date: 2024.12.31 INSITRO INC
  • US12182202B2 patent drawing
  • US12182202B2 patent drawing
  • US12182202B2 patent drawing

AI summary

Example methods, apparatuses, and/or articles of manufacture are disclosed that may be implemented, in whole or in part, using one or more computing devices to: compare first nodes of a first call graph to second nodes of a second call graph based, at least in part, on hash values associated with the first and second nodes to identify one or more of the second nodes that are absent from the first nodes.