Runtime Specialized Decoders for Dynamic Type Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Dynamically typed programming languages face significant overhead in decoding operations due to the need for function lookups to determine the correct decoding function for each value accessed from a database, as they lack explicit type specification and rely on runtime type inference.

Innovation Solution

Generating specialized decoders at runtime for each column accessed by a query, which are then in-lined by a JIT compiler for efficient decoding, reducing the need for computationally expensive function lookups during subsequent accesses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If function lookups are performed for each value accessed from the database to determine the correct decoding function, then the decoding operation can handle dynamically typed languages flexibly, but significant overhead is imposed due to the lookup cost on every retrieval

Engineering Contradiction:
Improveflexibility in handling dynamically typed languagesVSAvoiddecoding overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by generating specialized decoders at query execution time based on metadata analysis, before actual data retrieval occurs. These pre-generated decoders are then cached and reused for subsequent column accesses, eliminating the need for repeated function lookups during data retrieval while maintaining support for dynamically typed languages

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If metadata interpretation and function selection is performed for every column retrieval, then the correct decoding function can be selected dynamically, but the operation becomes computationally expensive

Engineering Contradiction:
Improveautomatic type inferenceVSAvoidprocessing efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

Metadata interpretation and function selection are performed in advance when the query is executed, not when individual columns are accessed. The system analyzes column metadata, determines appropriate decoding functions, and generates specialized decoders before data retrieval begins. This preliminary processing maintains automatic type inference while dramatically improving subsequent retrieval efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates specialized decoder copies tailored to specific column types and constraints. Instead of repeatedly selecting from a general function set, the system generates and caches type-specific decoder instances that can be directly applied to corresponding columns, eliminating repeated metadata interpretation overhead

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If a generic decoding approach with runtime lookups is used, then the driver can support multiple data types, but memory usage and bandwidth requirements increase

Engineering Contradiction:
Improvemulti-data type supportVSAvoidmemory usage
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent applies local quality by generating decoders with properties specifically tailored to each column's data type and constraints. Instead of using a single generic decoding mechanism for all columns, the system creates specialized decoders with optimized characteristics for specific data types (e.g., numeric, string, boolean), reducing memory overhead by eliminating unnecessary type-checking logic for each access

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The decoding functionality is segmented into specialized decoders for different data types and constraint combinations. Each decoder is an independent, self-contained unit that handles a specific column type, allowing the system to support multiple data types while using only the necessary decoder for each column, thereby reducing overall memory consumption

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10684873B2Efficient data decoding using runtime specialization
Publication Date: 2020.06.16 ORACLE INT CORP
  • US10684873B2 patent drawing
  • US10684873B2 patent drawing
  • US10684873B2 patent drawing

AI summary

Computer-implemented techniques described herein provide efficient data decoding using runtime specialization. In an embodiment, a method comprises a virtual machine executing a body of code of a dynamically typed language, wherein executing the body of code includes: querying a relational database, and in response to the query, receiving table metadata indicating data types of one or more columns of a first table in the relational database. In response to receiving the table metadata: for a first column of the one or more columns, generating decoding machine code to decode the first column based on the data type of the first column, and executing the decoding machine code to decode the first column of the one or more columns.