Shared Data Store for Peer Discovery in Cloud P2P Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional peer-to-peer systems face challenges with dynamic membership, as static lists are cumbersome for large numbers of nodes and UDP multicast is not permitted in cloud computing platforms like Amazon EC2 and Rackspace Cloud, leading to inefficient peer discovery processes.

Innovation Solution

Implementing a shared data store for peer discovery, where machines access and write their network addresses, and read others' addresses to determine group membership, enabling efficient joining and tracking of peer-to-peer system membership, even in environments that prohibit multicast.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If static lists are used for peer discovery, then discovery speed is very fast, but the system cannot handle dynamic membership and becomes cumbersome for large numbers of nodes

Engineering Contradiction:
Improvepeer discovery speedVSAvoiddynamic membership handling
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent introduces a shared data store as an intermediary component that mediates between peers in the peer-to-peer system. This data store maintains membership information and allows peers to discover each other by reading from and writing to the shared data store, thereby enabling dynamic membership handling while maintaining efficient discovery without requiring direct peer-to-peer communication for discovery purposes

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent extracts the membership management functionality from the peer-to-peer communication protocol itself and places it in a separate shared data store. This separation allows the peer discovery mechanism to focus on speed while the data store handles the complexity of dynamic membership, effectively removing the bottleneck from the discovery process

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If UDP multicast is used for peer discovery, then dynamic membership is supported, but multiple round trip messages are required and cloud computing platforms do not permit multicasts

Engineering Contradiction:
Improvedynamic membership supportVSAvoiddiscovery time due to multiple round trips
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by having peers write their membership information to the shared data store in advance, before discovery is needed. When a peer needs to discover others, the information is already available in the data store, eliminating the need for multiple round-trip multicast messages and reducing discovery time while maintaining dynamic membership support

Inventive Principle:
Principle #10Preliminary action

3Speed

If static lists are used, then peer discovery is very fast, but the mechanism is cumbersome for large numbers of nodes

Engineering Contradiction:
Improvediscovery speedVSAvoidlist management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The shared data store serves as an intermediary that manages the complexity of maintaining and updating membership information for large numbers of nodes. Instead of manually managing static lists, the system uses the data store to automatically handle additions, removals, and updates of peer information, reducing management complexity while preserving fast discovery performance

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10187463B2Using a shared data store for peer discovery
Publication Date: 2019.01.22 RED HAT INC
  • US10187463B2 patent drawing
  • US10187463B2 patent drawing
  • US10187463B2 patent drawing

AI summary

An example method includes: identifying, by a new node, an address of a shared data store comprising information on a current membership in a peer-to-peer system, wherein the shared data store is shared by a plurality of nodes that are current members of the peer-to-peer system, wherein the shared data store is a container for storing data in a storage cloud; sending, by the new node, a first message comprising an address of the new node to the shared data store; requesting, by the new node, at least one membership data structure from the shared data store; receiving, by the new node, a second message comprising the at least one membership data structure; generating, by the new node, a new membership data structure comprising the address of the new node and the plurality of addresses for the plurality of nodes identified in the at least one membership data structure; sending, by the new node, a third message comprising the new membership data structure to the shared data store; and joining, by the new node, the peer-to-peer system, wherein the joining comprises using the new membership data structure to identify nodes of the plurality of nodes to receive a plurality of messages from the new node.