Tuple Graph Type Inference for Distributed Computing Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current programming models for cloud computing face challenges in performance due to data proximity and transfer costs in distributed computations, particularly in achieving low-latency and efficient data processing across multiple machines.

Innovation Solution

A new programming model that constructs distributed low-latency non-batch programs as directed acyclic graphs, enabling type inference and automatic location assignment to optimize operator execution across machines, reducing network traffic through sharding and pipelining, and utilizing dynamic buffer growth for efficient data transfer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If distributed computation is implemented across multiple machines, then computing power and scalability are improved, but data transfer costs and latency increase

Engineering Contradiction:
Improvecomputing powerVSAvoiddata transfer latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system segments data into tuples with structured fields and divides computation into operators that process specific fields. This segmentation allows for selective data transfer and processing, reducing unnecessary network traffic while maintaining distributed computing power.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs type inference and constraint determination during compile time before execution. This preliminary action optimizes the execution plan in advance, determining data flow paths and operator placements to minimize runtime data transfer latency.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If operators are deployed on different machines, then system scalability is improved, but coordination complexity increases

Engineering Contradiction:
Improvesystem scalabilityVSAvoidoperator coordination
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system automatically infers types and determines constraints for operators without manual configuration. This self-service approach reduces coordination complexity by having the system manage its own type system and data flow optimization, while still enabling deployment across multiple machines.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The type inference system uses feedback from operator definitions and input types to automatically determine output types and constraints. This feedback mechanism simplifies coordination by automatically resolving type compatibility issues across distributed operators.

Inventive Principle:
Principle #23Feedback

3Reliability

If manual type specification is used for operators, then type safety is improved, but programming complexity increases

Engineering Contradiction:
Improvetype safetyVSAvoidprogramming complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system automatically performs type inference based on operator inputs and definitions, eliminating the need for manual type specification. This maintains type safety through automated constraint determination while reducing programming complexity by removing boilerplate type annotations.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system changes the approach from static manual type specification to dynamic automatic type inference. By using parameterized operator definitions and automated constraint solving, the system achieves type safety without requiring explicit type declarations from programmers.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11429355B2System of type inference for tuple graph programs
Publication Date: 2022.08.30 GOOGLE LLC
  • US11429355B2 patent drawing
  • US11429355B2 patent drawing
  • US11429355B2 patent drawing

AI summary

A programming model provides a method for type inference in programming operations. Information defining one or more attributes of an operation is received, the information specifying a field including a field name and a field type identifier for each of the attributes. Constraints for the operation are determined at least based on the attributes, wherein the constraints restrict at least one of a type of input for the operation or a type of output for the operation. Information defining an input for the operation is received, and it is determined, based on the constraints and the received information defining the input, the type of output for the operation. The type of output is associated with an output for the operation.