Two-Part Event Identifier for Peer-to-Peer Ordering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In peer-to-peer communication environments, existing solutions for event ordering are unreliable due to the lack of a central server, with issues such as differing timestamps and biased disambiguation methods, particularly when peer devices run on different machines.
Innovation Solution
A two-part event identifier system is established, where each peer device initializes a unique current event identifier that is updated differently when sending and receiving events, allowing for unambiguous event ordering without relying on external disambiguation logic.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If absolute timestamps are used for event ordering, then event ordering can be performed, but the ordering becomes unreliable when peer devices have different time configurations
Solution Approach 1:
The event identifier is segmented into two distinct parts: a local counter portion and a remote counter portion. This segmentation allows each peer to maintain independent timing references while achieving consistent global ordering through the combination of both portions, eliminating the need for synchronized clocks across peers.
Solution Approach 2:
The remote counter portion acts as an intermediary mechanism that mediates between the local counters of different peers. By incorporating remote counter values into the event identifier, the system eliminates the need for direct time synchronization while ensuring consistent ordering across all peers.
2Ease of operation
If Lamport timestamps with process ID disambiguation are used, then event ordering can be achieved, but the disambiguation process introduces bias when peers continuously win
Solution Approach 1:
The event identifier is divided into symmetric counter portions (local and remote) that both contribute equally to the ordering decision. This segmentation eliminates the hierarchical bias inherent in process-ID-based disambiguation, as neither peer has inherent superiority in the ordering process.
Solution Approach 2:
The system introduces asymmetry in the counter update behavior: when a peer sends an event, it increments its local counter; when it receives an event, it increments its remote counter. This asymmetric update pattern ensures fair ordering without continuous bias toward any single peer.
3Reliability
If a central server is used for event ordering, then ordering consistency can be ensured, but security and scalability are compromised
Solution Approach 1:
The central server is completely extracted from the system. Event ordering is achieved through distributed peer-to-peer mechanisms where each peer maintains its own counter and exchanges counter values with others, eliminating the need for a central authority while maintaining ordering consistency.
Solution Approach 2:
Each peer device performs self-service by maintaining its own counter and autonomously ordering events based on the two-part identifier. The system achieves global ordering consistency through local peer actions without requiring external server intervention, enabling scalability.
4Device complexity
If simple counters are used for event identifiers, then device complexity is reduced, but concurrent events with identical timestamps require additional disambiguation logic
Solution Approach 1:
The counter is segmented into two independent portions (local and remote) that together provide sufficient information to distinguish all concurrent events. This segmentation eliminates the need for additional disambiguation logic beyond simple counter comparison, as the two-part identifier inherently provides unique ordering for all events.
Data Source
AI summary
A system, method, and computer program product are provided for peer-to-peer event ordering using a two part event identifier. In use, a peer-to-peer communication channel is established by a first peer device with a second peer device. A current event identifier is initialized at the first peer device, and the second peer device initializes a different current event identifier at the second peer device. A plurality of events are communicated between the first peer device and the second peer device, where the events are each configured to include an event identifier that is the current event identifier of a sender of the event, and where the current event identifier includes two portions that are updated differently when sending and receiving events. Further, the events are ordered by the first peer device, using the event identifier included with each of the events.


