Distributed Class Loading in Virtual Machines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current class loading mechanisms in JVMs, such as sequential search and load, are inefficient, especially when dealing with large jar files, leading to prolonged class loading times and potential application response time delays.

Innovation Solution

Implementing a distributed class loading system that breaks the classpath into subsets and utilizes multiple threads to perform a parallel search across multicore processors, ensuring efficient class loading by prioritizing threads based on order numbers and allowing for parallel task execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If sequential search and load is used for class loading, then the class loading process is simple to implement, but the class loading time is prolonged and application response time is delayed

Engineering Contradiction:
Improveclass loading speedVSAvoidclass loading mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the classpath into multiple subsets and assigns each subset to a separate thread for parallel processing. This divides the single sequential search task into multiple concurrent search tasks, enabling simultaneous class loading across multiple CPU cores and significantly improving class loading speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic thread management where threads are created and managed based on the classpath subsets. The system dynamically allocates resources and manages thread lifecycles, allowing the class loading mechanism to adapt to different classpath sizes and system configurations while maintaining parallel execution capability.

Inventive Principle:
Principle #15Dynamics

2Loss of time

If distributed search with multiple threads is implemented, then class loading performance is enhanced and application response time is reduced, but the system complexity increases

Engineering Contradiction:
Improveapplication response timeVSAvoidthread management complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The classpath is divided into multiple subsets that can be processed in parallel by different threads. This segmentation enables simultaneous search operations across multiple CPU cores, reducing the total time required to locate and load classes, thereby decreasing application response time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a feedback mechanism where threads report their search results to a central coordinator. When a thread successfully locates a class, it notifies other threads to stop searching, providing immediate feedback that optimizes resource utilization and reduces unnecessary processing, thus minimizing application response time.

Inventive Principle:
Principle #23Feedback

3Productivity

If parallel search across multicore processors is used, then class loading is faster and hardware utilization is optimized, but the coordination and synchronization requirements increase

Engineering Contradiction:
Improveclass loading throughputVSAvoidthread coordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the classpath into distinct subsets assigned to different threads, enabling parallel search operations across multiple CPU cores. This segmentation maximizes hardware utilization by keeping all cores busy simultaneously, thereby increasing class loading throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a central coordinator as an intermediary that manages thread creation, task distribution, and result collection. This mediator simplifies coordination by centralizing control logic, managing synchronization requirements, and handling thread lifecycle events, thereby reducing the complexity of direct thread-to-thread coordination.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9870237B2System and method for supporting distributed class loading in a virtual machine (VM)
Publication Date: 2018.01.16 ORACLE INT CORP
  • US9870237B2 patent drawing
  • US9870237B2 patent drawing
  • US9870237B2 patent drawing

AI summary

A system and method can support distributed class loading in a computing environment, such as a virtual machine. A class loader can break a classpath into one or more subsets of a classpath, wherein the classpath is associated with a class. Furthermore, the class loader can use one or more threads to locate the class based on said one or more subsets of the classpath. Then, the class loader can load the class after a said thread locates the class.