Distributed Shared Memory Service Abstraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional shared memory architectures in distributed computing environments are costly and do not scale efficiently as the number of computing nodes increases, limiting performance and complexity in data sharing between producers and consumers.

Innovation Solution

A software-based loosely coupled shared memory architecture employing shared memory services that provide an abstraction of shared memory, allowing producers and consumers to access a global shared memory through local memory buffers, with intermittent propagation and relaxed consistency guarantees, reducing processing bandwidth consumption and enabling efficient scaling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional shared memory architecture is implemented, then data sharing between producers and consumers is enabled, but cost increases and scaling efficiency deteriorates as computing environment size increases

Engineering Contradiction:
Improvedata sharing capabilityVSAvoidsystem cost and scaling complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The shared memory system is segmented into multiple distributed memory buffers across different computing nodes. Each node maintains local memory buffers that collectively form the global shared memory, allowing the system to scale by simply adding more nodes without increasing complexity at each individual node.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A memory buffer manager acts as an intermediary between producers and consumers, managing memory allocation, data propagation, and consistency. This mediator abstracts the complexity of distributed memory management from individual producers and consumers, enabling scalable data sharing without direct complex interactions between all components.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If tight coupling between producers and consumers is maintained for consistent data access, then data consistency is improved, but processing bandwidth consumption increases and performance deteriorates

Engineering Contradiction:
Improvedata consistencyVSAvoidprocessing bandwidth efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system uses periodic or event-driven propagation of memory data from producers to consumers rather than continuous synchronization. Memory buffers are updated and propagated at intervals or triggered by specific events, reducing unnecessary processing bandwidth consumption while maintaining adequate data consistency for distributed computing workloads.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The coupling between producers and consumers is made dynamic rather than static. The system adjusts the level of synchronization and data propagation based on workload conditions, allowing loose coupling during low-activity periods to save bandwidth and tighter coupling when data freshness is critical, optimizing performance across varying operational states.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8024529B2Providing shared memory in a distributed computing system
Publication Date: 2011.09.20 HEWLETT PACKARD ENTERPRISE DEV LP
  • US8024529B2 patent drawing
  • US8024529B2 patent drawing
  • US8024529B2 patent drawing

AI summary

A distributed computing system includes a plurality of processors and shared memory service entities executable on the processors. Each of the shared memory service entities is associated with a local shared memory buffer. A producer is associated with a particular shared memory service entity, and the producer provides data that is stored in the local shared memory buffer associated with the particular shared memory service entity. The shared memory service entities propagate content of the local shared memory buffers into a global shared memory, wherein propagation of content of the local shared memory buffers to the global shared memory is performed using a procedure that relaxes guarantees of consistency between the global shared memory and the local shared memory buffers.