1.GRD
GRD就像是锁和资源的一个中央仓库。它分散在所有节点中。只有一个节点维护者有关一个资源的完整信息,这个节点称为该资源的“主控节点”。
全局缓存中的每个数据块地址(DBA)都有一个“资源”,可以为该资源分配多个锁。每个在其缓存中保存着这个数据块副本的实例都可以拥有对该资源的锁。
GCS锁结构在物理上位于集群中每个对该数据块感兴趣的节点上。
2.锁与角色
根据锁与角色,一个资源可以有6种状态:NL,SL,XL,NG,SG,XG。其中N代表NULL,S代表share(干净的块),X代表exclude(被某实例以独占模式修改过的脏块),L代表local,G代表global。
SL:当一个实例拥有一个SL状态的资源时,它可以向其他实例提供这个块的副本,并且可以从磁盘读取这个块。因为数据块未被修改,所以不需要将其写到磁盘。
XL:当一个实例拥有一个XL形式的资源时,它独占这个资源的所有权。它还拥有修改这个块的独占权限。对这些数据块所做的全部修改都保存在它本地的缓冲区缓存中,它可以将块写到
磁盘中。如果另一个实例需要这个块,那么它将通过GCS与这个实例联系。
NL:NL形式用于保护一致读块。如果一个块以SL模式保存,而另一个实例希望获得该块的X锁时,那么当前实例将把这个块发送给发出请求的实例,并将自己的状态降为NL。
SG:在SG形式中,一个块存在于一个或多个实例中。一个实例可以从磁盘读取这个块&#x
GRD就像是锁和资源的一个中央仓库。它分散在所有节点中。只有一个节点维护者有关一个资源的完整信息,这个节点称为该资源的“主控节点”。
全局缓存中的每个数据块地址(DBA)都有一个“资源”,可以为该资源分配多个锁。每个在其缓存中保存着这个数据块副本的实例都可以拥有对该资源的锁。
GCS锁结构在物理上位于集群中每个对该数据块感兴趣的节点上。
2.锁与角色
根据锁与角色,一个资源可以有6种状态:NL,SL,XL,NG,SG,XG。其中N代表NULL,S代表share(干净的块),X代表exclude(被某实例以独占模式修改过的脏块),L代表local,G代表global。
SL:当一个实例拥有一个SL状态的资源时,它可以向其他实例提供这个块的副本,并且可以从磁盘读取这个块。因为数据块未被修改,所以不需要将其写到磁盘。
XL:当一个实例拥有一个XL形式的资源时,它独占这个资源的所有权。它还拥有修改这个块的独占权限。对这些数据块所做的全部修改都保存在它本地的缓冲区缓存中,它可以将块写到
磁盘中。如果另一个实例需要这个块,那么它将通过GCS与这个实例联系。
NL:NL形式用于保护一致读块。如果一个块以SL模式保存,而另一个实例希望获得该块的X锁时,那么当前实例将把这个块发送给发出请求的实例,并将自己的状态降为NL。
SG:在SG形式中,一个块存在于一个或多个实例中。一个实例可以从磁盘读取这个块&#x