Row ID Generation in Database DMA Engine

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Database servers executing on multi-core processors face inefficiencies in data movement due to overhead from direct memory access (DMA) engines, as tabular data is not optimally formatted for DMA, leading to frequent interrupts and performance degradation, and existing solutions fail to efficiently partition data across computing nodes.

Innovation Solution

A hardware-accelerated data movement system with multiple data movement engines that transform and move tabular data, using descriptors to optimize data manipulation and partitioning 'in-flight', allowing for efficient data movement and partitioning without software execution, and utilizing a copy ring for internal data transfer between engines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If DMA engines are used to move tabular data from main memory to local memory, then data movement is offloaded from the processor, but the overhead from frequent interrupts and non-optimal data formatting significantly offsets or eliminates the processor efficiency gains

Engineering Contradiction:
Improveprocessor efficiencyVSAvoidoverhead from interrupts and data formatting
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by performing data formatting and manipulation operations before the actual data movement occurs. The system prepares tabular data in an optimal format within main memory, organizes it into row-major or column-major layouts as needed, and pre-calculates movement parameters. This preliminary preparation eliminates the need for frequent interrupts during data transfer, as the DMA engine receives pre-formatted data blocks that can be moved efficiently in larger chunks, thereby reducing overhead and improving processor efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary component that acts as a buffer or staging area between main memory and local memory. This intermediary structure holds pre-formatted tabular data and manages the data movement process, allowing the system to batch multiple data operations together. The intermediary enables the DMA engine to operate more efficiently by providing it with optimally formatted data blocks, reducing the frequency of interrupts, and allowing the processor to continue with other tasks while data movement is being prepared and executed.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If tabular data is moved to local memory closer to the core processor, then data manipulation operations can be performed more efficiently, but the small size of local memory requires repeated data movement and generates a large number of interrupts

Engineering Contradiction:
Improvedata manipulation efficiencyVSAvoidnumber of data movement operations and interrupts
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the tabular data into logically organized segments that can be efficiently managed. The system segments data by rows or columns, allowing selective movement of only the necessary data portions to local memory. This segmentation enables the DMA engine to transfer data in optimized chunks rather than moving entire tables repeatedly, reducing the number of interrupts while maintaining efficient data manipulation capabilities. The segmented approach also allows different segments to be processed independently, improving overall system productivity.

Inventive Principle:
Principle #1Segmentation

3Productivity

If multiple data movement engines are used to transfer data to multiple core processors, then data distribution is improved, but copying the same data to multiple internal memories increases data movement overhead

Engineering Contradiction:
Improvedata distribution efficiencyVSAvoidoverhead from multiple data copies
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies the copying principle strategically by creating copies of data only when necessary and optimizing the copy process. Instead of copying data to multiple internal memories simultaneously, the system uses a single data movement engine to transfer data to one internal memory, then uses broadcast or pointer-based mechanisms to distribute the data to multiple core processors. This approach minimizes redundant data copying while still enabling efficient data distribution to multiple processors, thereby improving productivity without incurring excessive overhead from multiple copy operations.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10176114B2Row identification number generation in database direct memory access engine
Publication Date: 2019.01.08 ORACLE INT CORP
  • US10176114B2 patent drawing
  • US10176114B2 patent drawing
  • US10176114B2 patent drawing

AI summary

Techniques provide for hardware accelerated data movement between main memory and an on-chip data movement system that comprises multiple core processors that operate on the tabular data. The tabular data is moved to or from the scratch pad memories of the core processors. While the data is in-flight, the data may be manipulated by data manipulation operations. The data movement system includes multiple data movement engines, each dedicated to moving and transforming tabular data from main memory data to a subset of the core processors. Each data movement engine is coupled to an internal memory that stores data (e.g. a bit vector) that dictates how data manipulation operations are performed on tabular data moved from a main memory to the memories of a core processor, or to and from other memories. The internal memory of each data movement engine is private to the data movement engine. Tabular data is efficiently copied between internal memories of the data movement system via a copy ring that is coupled to the internal memories of the data movement system and/or is coupled to a data movement engine. Also, a data movement engine internally broadcasts data to other data movement engines, which then transfer the data to respective core processors. Partitioning may also be performed by the hardware of the data movement system. Techniques are used to partition data “in flight”. The data movement system also generates a column of row identifiers (RIDs). A row identifier is a number treated as identifying a row or element's position within a column. Row identifiers each identifying a row in column are also generated.