Linear Array Marshaling for Database Data Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In database environments, large memory arrays with unused space are allocated for data retrieval, leading to inefficient data copying between layers, which is computationally expensive and prone to out-of-memory issues, especially when handling massive data sets.

Innovation Solution

A system and method that uses a linear array to marshal database data from a native interface layer to a Java layer by linearizing cell data, compacting it, and providing cell coordinates and metadata for efficient access, reducing empty space and enabling data reuse across multiple statements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If large memory arrays are allocated for data retrieval, then data access capacity is improved, but memory efficiency deteriorates due to unused space

Engineering Contradiction:
Improvedata access capacityVSAvoidmemory efficiency
Core Design Contradiction:
Quantity of substanceVSLoss of substance

Solution Approach 1:

The patent segments the large memory array into multiple smaller row-wise arrays and column-wise arrays. This segmentation allows the system to allocate only the necessary memory portions for each specific data access operation, eliminating the need to allocate and maintain large contiguous memory blocks with unused space. Each segmented array can be independently managed and released, improving overall memory efficiency while maintaining adequate data access capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic memory allocation where memory arrays are created and destroyed based on actual access patterns. The row-wise and column-wise arrays are dynamically allocated when needed for specific operations and released when no longer required. This dynamic approach allows the system to adapt memory usage to actual workload demands, improving memory efficiency without sacrificing data access capacity.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If data is copied between native interface layer and Java layer, then data accessibility is improved, but computational cost deteriorates

Engineering Contradiction:
Improvedata accessibilityVSAvoidcomputational cost
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The patent uses copying to create row-wise and column-wise views of the underlying data without physically duplicating the entire data set. The copying mechanism creates efficient access patterns by organizing data references in row-major and column-major orders, allowing the system to provide multiple access perspectives while minimizing actual data movement and computational overhead.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent adds dimensional organization to the data structure by creating both row-wise and column-wise array views. This dimensional approach allows data to be accessed efficiently in either direction without requiring separate physical storage for each access pattern. The dimensional organization reduces computational cost by enabling direct access to rows or columns through pre-organized array structures rather than requiring complex computation during each access operation.

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

3Productivity

If massive data sets are handled, then data processing capability is improved, but out-of-memory issues worsen

Engineering Contradiction:
Improvedata processing capabilityVSAvoidout-of-memory stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments massive data sets into manageable row-wise and column-wise arrays that can be processed in smaller chunks. This segmentation allows the system to handle large volumes of data by processing only the necessary portions in memory at any given time, reducing the peak memory requirements and preventing out-of-memory issues while maintaining high data processing capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a strategy where memory arrays are discarded (released) after their computational purpose is fulfilled and recovered (reallocated) for subsequent operations. The row-wise and column-wise arrays are created when needed for specific computations and released when no longer required, allowing the system to handle massive data sets with limited memory by continuously recycling memory resources rather than requiring all data to remain in memory simultaneously.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS9600546B2System and method for marshaling massive database data from native layer to java using linear array
Publication Date: 2017.03.21 ORACLE INT CORP
  • US9600546B2 patent drawing
  • US9600546B2 patent drawing
  • US9600546B2 patent drawing

AI summary

A system and method for marshaling database data from a native interface layer, to a Java layer, using a linear array. In accordance with an embodiment, a request is received from a software application to query or access data stored at the database. At a database driver native interface layer, the system obtains cell data from the database, determines cell coordinates and a cell metadata, and linearizes the cell data if required. The linearized data is then flushed to a linear byte array in the database driver presentation layer, and the cell coordinates and cell metadata are provided for use by a compact data handler and the application in accessing the data.