Contention Detection in Replicated Memory Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computing systems with replicated shared memory across multiple interconnected computers, contention arises when multiple sources attempt to update the same memory location simultaneously, leading to race conditions and inconsistencies due to latency and delay in network communications.
Innovation Solution
A method and system that utilize an updating format including a specific memory location identifier, the content to be updated, and a resident updating count, which increments with each update, allowing each computer to compare the resident count with incoming updates to detect and resolve contention by determining if the update is newer, older, or simultaneous, thereby ensuring consistent memory updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If replicated memory locations are updated simultaneously from multiple sources, then computing speed is improved through parallel processing, but race conditions and data inconsistencies occur
Solution Approach 1:
The patent applies preliminary action by having each memory location maintain a pre-stored resident updating count before any update occurs. This count is used in advance to evaluate incoming updates and determine whether to apply them, preventing race conditions before they can cause data inconsistency.
Solution Approach 2:
The patent implements feedback by continuously monitoring and comparing the resident updating count with the updating count of incoming memory updates. This feedback mechanism allows the system to detect contention situations and make informed decisions about which updates to apply, maintaining data consistency while allowing parallel processing.
2Reliability
If update counts are compared to detect contention, then data consistency is maintained, but additional comparison operations and memory accesses are required
Solution Approach 1:
The patent merges the update detection function with the existing memory update process. The resident updating count is stored alongside the memory location data, and the comparison operation is integrated into the standard update handling routine. This eliminates the need for separate detection mechanisms and reduces overall system complexity.
Solution Approach 2:
The system performs self-service by automatically comparing updating counts and making decisions about update application without external intervention. The memory management mechanism itself handles the contention detection and resolution, eliminating the need for complex external synchronization protocols.
3Speed
If all memory locations are replicated across all computers, then reading speed is improved through local access, but memory bandwidth and storage resources are consumed
Solution Approach 1:
The patent applies local quality by enabling each computer to access its local replicated memory copies for reading operations, improving read speed. However, the system maintains the ability to selectively update only affected memory locations rather than replicating all memory, thereby reducing unnecessary bandwidth consumption and storage requirements.
Data Source
AI summary
A multiple computer system is disclosed in which n computers (M1, M2 . . . Mn) each run a different portion of a single application program written to execute only on a single computer. The local memory of each computer is maintained substantially the same by updating all computers with every change made to addressed memory locations. Contention can arise when the same memory location is substantially simultaneously updated by two or more machines because of transmission delays and latency of the communications network interconnecting all the computers. In particular a method of detecting contention is disclosed which utilizes a count value indicative of the number of the sequence of occasions on which each memory location has been updated. Contention is indicated if the currently stored count value and the incoming updating count value are the same.


