Hierarchical Lock-Free Structure for 3D Data Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The risk of deadlocking occurs during the loading and rendering of 3D voxel data, particularly when multiple parts or threads are involved, leading to operational halts as processes wait for each other, and conventional synchronization techniques are prone to deadlocking and increase development costs.

Innovation Solution

A hierarchical lock-free data structure is implemented, allowing data to be progressively loaded and processed by using atomic operations to 'hot-plug-in' new data pieces without reshuffling existing data, ensuring that only complete data segments are available for rendering, thus preventing deadlocking and optimizing thread performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional synchronization techniques are used to manage multiple threads during data loading and rendering, then thread coordination is achieved, but deadlocking occurs and development costs increase

Engineering Contradiction:
Improvethread coordination reliabilityVSAvoidsynchronization mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the 3D data into multiple parts or layers that can be loaded and processed independently. Each segment can be handled by separate threads without requiring complex synchronization, as each thread works on its own segment. This segmentation eliminates deadlocking by removing the need for thread coordination on shared data structures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a dynamic data structure where data can be added or modified during execution without requiring locks. The system allows threads to access and modify data structures dynamically as data is loaded, eliminating the need for static synchronization mechanisms and preventing deadlocking conditions.

Inventive Principle:
Principle #15Dynamics

2Reliability

If data is loaded completely before processing, then data integrity is ensured, but loading time increases and productivity decreases

Engineering Contradiction:
Improvedata integrityVSAvoidloading and processing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary actions by loading data into a hierarchical structure in advance, organizing it into levels where parent nodes can be accessed immediately while child nodes are loaded progressively. This allows the system to start processing parent-level data before child data is fully loaded, maintaining integrity through structured organization while improving productivity through early access to available data.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies partial action by processing only the portions of data that are currently available in the hierarchical structure. Instead of waiting for complete data loading, the system processes available parent nodes and progressively loads child nodes as needed. This partial processing approach maintains data integrity through the hierarchical structure while significantly improving loading and processing speed.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If multiple threads load and render data simultaneously, then hardware resource utilization improves, but deadlocking risk increases

Engineering Contradiction:
Improvehardware resource utilizationVSAvoiddeadlocking prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent divides the data into separate segments that can be loaded and rendered by different threads independently. Each thread works on its own segment without interfering with others, allowing simultaneous execution that maximizes hardware utilization while eliminating deadlocking through independent thread operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements self-service mechanisms where threads automatically manage their own data loading and processing without requiring coordination with other threads. Each thread independently loads its assigned data segment and processes it without needing locks or synchronization, enabling parallel execution that improves hardware utilization while preventing deadlocking through autonomous thread operation.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7965290B1Method, system, and data structure for progressive loading and processing of a 3D dataset
Publication Date: 2011.06.21 MCLOUD TECHNOLOGIES USA INC
  • US7965290B1 patent drawing
  • US7965290B1 patent drawing
  • US7965290B1 patent drawing

AI summary

A method is provided to progressively load and further process data in a hierarchical lock-free structure. The method includes generally four steps: (a) defining the hierarchical lock-free structure, (b) loading the data into the hierarchical lock-free structure; (c) processing the loaded data, and (d) repeating steps (b) and (c) such that progressively more data are loaded and become available for processing. The hierarchical lock-free structure includes a first level of data including data segments, wherein each of the data segments forms a second level of data. The structure is such that each of the data segments in the second level of data becomes available for further processing when the data segment is referenced in the first level of data. Thus, during the loading step (b), a reference is set in the first level of data to each of the data segments in the second level of data as the data segment is loaded. Then, the processing step (c) process each of the data segments in the second level of data to which a reference is set in the first level of data.