Parallel XML Parsing via Partition Segmentation and Namespace Mediation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Parsing large XML documents is time-consuming due to the inefficiencies in existing parsing methods, particularly when dealing with complex hierarchical structures and namespaces.

Innovation Solution

The technique involves dividing an XML document into logical file partitions and assigning each partition to a separate process for parallel processing, allowing for efficient scanning and parsing of target elements across partitions while correctly tracking namespaces, thereby enabling faster parsing of large datasets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If an XML document is divided into multiple file partitions for parallel processing, then parsing speed is improved, but the complexity of tracking namespaces across partitions increases

Engineering Contradiction:
Improveparsing speedVSAvoidnamespace tracking complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The XML document is divided into multiple file partitions that can be processed in parallel. Each partition is assigned to a separate process, allowing simultaneous parsing operations while maintaining the ability to track namespaces across partition boundaries through the use of ancestor element information.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An intermediary data structure is introduced to store namespace information from ancestor elements when a target element spans multiple partitions. This intermediary mechanism allows processes to correctly resolve namespaces without requiring complex inter-process communication, thus reducing overall system complexity while enabling parallel processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If the entire XML document is processed by a single process, then namespace tracking is simpler, but parsing time increases significantly

Engineering Contradiction:
Improveparsing timeVSAvoidprocessing efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The XML document is divided into multiple file partitions that can be processed in parallel. Each partition is assigned to a separate process, allowing simultaneous parsing operations while maintaining the ability to track namespaces across partition boundaries through the use of ancestor element information.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Before parallel processing begins, the system identifies target elements that span multiple partitions and pre-loads the necessary ancestor element namespace information. This preliminary action ensures that when processes encounter these elements during parallel parsing, they can immediately resolve namespaces without blocking or requiring complex coordination.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If target elements spanning multiple partitions are handled by coordinating all processes, then parsing accuracy is improved, but processing overhead increases

Engineering Contradiction:
Improveparsing accuracyVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system extracts and isolates the namespace resolution logic into a separate mechanism that uses pre-loaded ancestor element information. When a target element spans multiple partitions, the necessary namespace context is extracted from ancestor elements and made available to the parsing process, eliminating the need for complex inter-process coordination while maintaining parsing accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Each parsing process is equipped with the necessary namespace information from ancestor elements, allowing it to independently and accurately resolve namespaces for target elements spanning multiple partitions. This self-service approach eliminates the need for processes to coordinate with each other for namespace resolution, reducing processing overhead while maintaining accuracy.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9922023B2Parallel parsing of file partitions storing a single XML document
Publication Date: 2018.03.20 ORACLE INT CORP
  • US9922023B2 patent drawing
  • US9922023B2 patent drawing
  • US9922023B2 patent drawing

AI summary

An XML document is stored in a file that is divided into file partitions. Each file partition is assigned to a process of a set processes to search for one or more separate target elements. The target elements are identified by a target element name. Each process scans an assigned file partition for the beginning of a target element. When a target element is found, an XML parser is invoked to parse the target element.