Method for maintaining data coherency using thread activity summaries in a multicomputer system
First Claim
1. A method for maintaining data coherency of a shared data structure having first and second copies thereof stored in respective first and second computers, comprising the steps of:
- storing in the first and second computers respective first and second mutual-exclusion mechanisms each having a thread activity summary and an update processor that processes data structure updates in response to the thread activity summary;
updating the first copy of the data structure with the first mutual-exclusion mechanism, thereby rendering the first and second copies of the data structure incoherent;
transferring the updated first copy of the data structure no the second computer; and
using the second mutual-exclusion mechanism to replace the second copy of the data structure with the updated first copy of the data structure, thereby restoring the coherency of the first and second copies of the data structure.
1 Assignment
0 Petitions
Accused Products
Abstract
A substantially zero overhead mutual-exclusion apparatus and method (90, 120) is provided that allows concurrent reading and updating data while maintaining data coherency. That is, a data reading process executes the same sequence of instructions that would be executed if the data were never updated. Rather than depending exclusively on overhead-imposing locks, this mutual-exclusion mechanism tracks an execution history (138) of a thread (16, 112) to determine safe times for processing a current generation (108, 130, 131) of data updates while a next generation (110, 132, 133) of data updates is concurrently being saved. A thread is any locus of control, such as a processor. A summary of thread activity (106, 122) tracks which threads have passed through a quiescent state after the current generation of updates was started. When the last thread related to the current generation passes through a quiescent state, the summary of thread activity signals a callback processor (104, 124) that it is safe to end the current generation of updates. The callback processor then processes and erases all updates in the current generation. The next generation of updates then becomes the current generation of updates. The callback processor restarts the summary of thread activity and initiates a new next generation of updates. All data-updating threads pass through a quiescent state between the time they attempt to update data and the time the data are actually updated.
172 Citations
13 Claims
-
1. A method for maintaining data coherency of a shared data structure having first and second copies thereof stored in respective first and second computers, comprising the steps of:
-
storing in the first and second computers respective first and second mutual-exclusion mechanisms each having a thread activity summary and an update processor that processes data structure updates in response to the thread activity summary; updating the first copy of the data structure with the first mutual-exclusion mechanism, thereby rendering the first and second copies of the data structure incoherent; transferring the updated first copy of the data structure no the second computer; and using the second mutual-exclusion mechanism to replace the second copy of the data structure with the updated first copy of the data structure, thereby restoring the coherency of the first and second copies of the data structure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
Specification