Overlapping requests do not require overlapping write permission. H chooses a per-line order, controllers keep track of pending work, and a requester may have to give up its retained bytes before receiving its own grant. These examples state their queueing policy explicitly.
Lesson | After it you can... |
|---|---|
Separate a permission request from usable permission and outstanding work. | |
Handle an invalidation while a local store is waiting. | |
Choose an order, deliver one grant before revoking it, and handle an Inv or Fwd that arrives before Data. | |
Resolve both arrival orders without dropping buffered dirty data. |
Read in order after Transactions. Requests carry the labels A, B, R and W so the tables can say which transaction a message belongs to. A queued request is not a granted permission.
Another winning transaction can invalidate the requester's S copy while it waits. Its original intent is still to acquire write permission, but it can no longer finish with a permission-only response.