Distributed Relational Dictionaries for Database Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing database systems face inefficiencies in generating and managing global dictionaries, leading to high computational and memory overhead, latency, and network resource taxation, particularly in distributed environments, due to the lack of viable mechanisms for decentralized dictionary generation and the 'one-size-fits-all' approach of hard-coded dictionary generation processes.

Innovation Solution

Modifying the query optimizer in a distributed database system to generate a query execution plan for efficient global dictionary generation and encoding, utilizing a relational dictionary implemented as a database table that can serve as both an encoding and decoding dictionary, allowing for optimal sequence selection based on column characteristics, and distributing dictionary generation across nodes to reduce latency and network communication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a centralized database system generates global dictionaries, then dictionary consistency is maintained, but computational overhead and memory usage increase significantly

Engineering Contradiction:
Improvedictionary consistencyVSAvoidcomputational overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides the centralized dictionary generation process into distributed segments across multiple nodes. Each node generates local dictionaries independently, and these are later merged into global dictionaries. This segmentation reduces the computational burden on any single node while maintaining overall system consistency through coordinated merging operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a single-dimensional centralized generation approach to a multi-dimensional distributed approach. Multiple nodes simultaneously generate dictionaries in parallel, adding a spatial dimension (across nodes) to the generation process. This dimensional change enables load distribution and reduced computational overhead per node.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If dictionary generation is performed centrally, then global consistency is achieved, but network resources are heavily taxed

Engineering Contradiction:
Improveglobal consistencyVSAvoidnetwork resource consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent segments the dictionary generation workload across multiple nodes, allowing local dictionary creation without centralized coordination for every operation. This reduces network traffic by eliminating the need for constant central-node communication, while periodic merging operations maintain global consistency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each node performs self-service by independently generating its own local dictionaries based on its local data. This eliminates the need for network communication during local dictionary generation, reducing network resource consumption. Nodes only communicate during merging operations to achieve global consistency.

Inventive Principle:
Principle #25Self-service

3Ease of manufacture

If hard-coded dictionary generation processes are used, then implementation is straightforward, but adaptability to different column characteristics is poor

Engineering Contradiction:
Improveimplementation simplicityVSAvoidadaptability to column characteristics
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent replaces static hard-coded generation processes with dynamic, adaptive processes that respond to column characteristics. The system automatically adjusts generation parameters based on the specific properties of each column, enabling adaptability while maintaining ease of implementation through automated decision-making.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent modifies generation parameters dynamically based on column characteristics such as data type, cardinality, and distribution patterns. By changing parameters like dictionary size, compression level, and generation algorithm selection based on measured column properties, the system achieves adaptability without complex hard-coded logic for each scenario.

Inventive Principle:
Principle #35Parameter changes

4Device complexity

If local dictionaries are used instead of global dictionaries, then memory overhead is reduced, but query execution efficiency decreases

Engineering Contradiction:
Improvememory overheadVSAvoidquery execution efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent merges local dictionaries from multiple nodes into global dictionaries that are shared across the distributed system. This combining approach reduces total memory overhead compared to maintaining separate full dictionaries at each node, while still enabling efficient query execution through the use of these consolidated global dictionaries for operations requiring cross-node data access.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10810195B2Distributed relational dictionaries
Publication Date: 2020.10.20 ORACLE INT CORP
  • US10810195B2 patent drawing
  • US10810195B2 patent drawing
  • US10810195B2 patent drawing

AI summary

Techniques related to distributed relational dictionaries are disclosed. In some embodiments, one or more non-transitory storage media store a sequence of instructions which, when executed by one or more computing devices, cause performance of a method. The method involves generating, by a query optimizer at a distributed database system (DDS), a query execution plan (QEP) for generating a code dictionary and a column of encoded database data. The QEP specifies a sequence of operations for generating the code dictionary. The code dictionary is a database table. The method further involves receiving, at the DDS, a column of unencoded database data from a data source that is external to the DDS. The DDS generates the code dictionary according to the QEP. Furthermore, based on joining the column of unencoded database data with the code dictionary, the DDS generates the column of encoded database data according to the QEP.