Example 3: Write-to-Write Transfer
This example shows how GCS satisfies a request by an instance to read a block for update where
that block is already held for update by another instance.
例3: 写-写传输
这个例子将展示GCS 如何满足这样的要求,当1个实例读取某个数据块以便跟新,而这个数据块
已经被另外一个instance以update 为目的持有了。
Instance 4 has also requested an exclusive read on the block. Initially, Instance 4 is not aware
that the block is currently held by Instance 1. Instance 4 identifies that Instance 3 is the resource
master instance for the block. Instance 4 sends a message to Instance 3 requesting exclusive access
to the block (Figure 22-10).
实例4也要求对这个数据块持有只读的排它锁。最开始,实例4不知道这个数据块已经被实例1
持有了。实例4将发现实例3是该数据块的资源属主。实例4将发送一个消息给实例3,要求
对这个数据块进行专有访问。
Instance 3 checks in the GRD and discovers that the block is currently held by Instance 1 for
exclusive (update) access. Instance 3 sends a message to Instance 1 requesting that it send the block
to Instance 4 (Figure 22-11).
实例3将检查GRD,并发现数据块当前正被实例1以专有(修改)模式持有。实例三发送消息给实例
1,要求它发送数据块给实例4
Instance 1 sends the block, still SCN 1320, to Instance 4 and downgrades the exclusive lock to
a null lock (Figure 22-12).。
实例1将发送这个数据块(时间点仍然是1320)给实例4,并把专有锁降级为空锁。
Instance 4 receives the block and sends a message to Instance 3 to update the resource status,
again setting the lock mode on the block to exclusive (Figure 22-13). Instance 3 updates the GRD.
Instance 4 assumes an exclusive lock and updates the block at SCN 1323.
实例4将接受这个数据块,并发送消息给实例3来跟新资源状态,再次把这个数据块上的锁
设置为专有模式。实例3跟新GRD。实例4宣称获得了专有锁,并在SCN 1323的时间点
修改这个数据块。
Note that Instance 1 will retain a past image (PI) copy of the block at SCN 1320 until the current
version of the block (SCN 1323) is written to disk by Instance 4.
注意实例1将保留这个数据块在SCN 1320的过去镜像(PI),直到该数据块的当前版本(scn 1323)
被实例4写回到磁盘。