XML Event Generation Memory Pre-allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The inefficiency in generating XML events from XML data sources due to the high cost of memory allocation and deallocation in database systems, particularly when processing large and complex XML documents, leads to significant CPU utilization and memory management overhead.

Innovation Solution

Pre-allocating a memory chunk of sufficient size to store all required memory buffers, allowing for reuse and adaptive adjustment based on the needs of the event-generating process, thereby reducing the number of memory allocation and deallocation requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If memory buffers are allocated dynamically during XML event generation, then the system can adapt to varying memory needs, but the number of allocation and deallocation requests increases significantly

Engineering Contradiction:
Improvememory adaptabilityVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent pre-allocates a memory pool before XML event generation begins, preparing memory resources in advance to avoid dynamic allocation during processing. This preliminary action reduces the number of allocation requests while maintaining the ability to handle varying memory needs through the pre-prepared memory pool.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If a fixed memory pool is pre-allocated, then allocation requests are reduced, but the memory size must be sufficient for the most complex XML documents

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidmemory size
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent implements a dynamic memory pool that can be adjusted based on the actual XML document being processed. The memory pool size is not fixed but can be modified to match the specific requirements of each XML document, combining the benefits of pre-allocation with adaptive sizing.

Inventive Principle:
Principle #15Dynamics

3Productivity

If memory is pre-allocated for all buffers, then allocation overhead is reduced, but initial memory consumption increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidinitial memory consumption
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent divides the memory pool into multiple segments or sub-pools that can be allocated and deallocated independently. This segmentation allows the system to pre-allocate a large memory pool while only consuming the portions actually needed for each XML processing task, reducing initial memory consumption while maintaining processing efficiency.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8543898B2Techniques for more efficient generation of XML events from XML data sources
Publication Date: 2013.09.24 ORACLE INT CORP
  • US8543898B2 patent drawing
  • US8543898B2 patent drawing
  • US8543898B2 patent drawing

AI summary

One may increase the efficiency of an XML event-generating process by reducing the number of requests to allocate or deallocate system memory. Such reduction may occur as the result of pre-allocating a memory chunk of sufficient size to contain all of the memory buffers required by a particular event-generating process. Instead of allocating new memory chunks for new memory buffers, an application may store any required buffers within the pre-allocated memory chunk. A sufficient memory size may be estimated by performing the event-generating process on a training set of XML documents. Also, an application may re-use buffers during the process or between different iterations of the process, thus avoiding the need to deallocate and reallocate memory that is essentially being used for the same purpose.