Shared Data Store for Peer Discovery in Cloud P2P Systems
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
3Speed
If static lists are used, then peer discovery is very fast, but the mechanism is cumbersome for large numbers of nodes
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
Data Source
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.


