Virtual Node Deployment for Cluster Apps in Single Machines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Migrating cluster-based applications to single machine environments is challenging due to the need for significant source code changes and resource reallocation, which hinders efficient performance in multicore big-memory systems.

Innovation Solution

The deployment of cluster-based applications is facilitated by creating virtual nodes within a single machine environment, using OS containers to manage resource allocation and inter-thread communication, where each virtual node is assigned a core subset, IP address, and in-memory file system, allowing access to shared memory, thereby simulating a distributed cluster setup.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If cluster-based applications are migrated to single machine environments, then performance gains are achieved in multicore big-memory systems, but significant source code changes and resource reallocation are required

Engineering Contradiction:
ImproveperformanceVSAvoidsource code changes
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent creates virtual nodes that copy the appearance and behavior of distributed cluster nodes within a single machine environment. Each virtual node is assigned a core subset, IP address, and in-memory file system, creating a virtual copy of the distributed cluster architecture that allows applications to run without modification

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces a virtualization layer as an intermediary between the application and the physical hardware. This layer includes virtual nodes, in-memory file systems, and resource management components that mediate between the application's expectations of a distributed cluster and the actual single-machine environment

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If cluster-based applications are migrated to single machine environments, then performance gains are achieved, but extensive modifications to deployment scripts and source code are needed

Engineering Contradiction:
ImproveperformanceVSAvoiddeployment complexity
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The patent copies the distributed cluster deployment structure into a virtualized single-machine environment, creating virtual nodes that replicate the original cluster's architecture. This allows deployment scripts to remain unchanged as they interact with virtual nodes that mimic the expected distributed environment

Inventive Principle:
Principle #26Copying

3Loss of time

If virtual nodes are created with in-memory file systems, then memory access time is minimized and latency in inter-node communications is reduced, but resource allocation complexity increases

Engineering Contradiction:
Improvememory access timeVSAvoidresource allocation
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent assigns each virtual node its own in-memory file system that is localized to that specific virtual node, optimizing memory access for each node independently. The resource management application manages these localized file systems and core subsets, allocating resources efficiently while maintaining the complexity benefits of virtualization

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10884774B2Virtual node deployments of cluster-based applications modified to exchange reference to file systems
Publication Date: 2021.01.05 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10884774B2 patent drawing
  • US10884774B2 patent drawing
  • US10884774B2 patent drawing

AI summary

Examples relate to deploying distributed applications using virtual nodes. In some examples, virtual nodes are created and are each assigned a core subset of a number of processing cores, an Internet protocol (IP) address, and an in-memory file system configured to provide access to a portion of physically shared memory. At this stage, a distributed application that is configured to be deployed to a plurality of machine nodes is deployed to the plurality of virtual nodes. On a first virtual node, a reference to a first dataset stored in physically shared memory is sent to a second virtual node, where the physically shared memory is accessible to each of the plurality of virtual nodes. Next, on the second virtual node, the first dataset is accessed through the in-memory file system of the first virtual node.