解决上述难题的一种方法是在共享数据子系统中采用一个统一的缓存。不过,这虽然为一致性提供了单一的点,但是它有可能不能为某些应用提供所需的性能,这取决于多种因素。
如果不在一个子系统中使用单一的缓存,则需要采用另外一些方法,用来显示与其他系统中缓存数据相关的信息状态。一种方法是使用可用来代表缓存数据状态的指示器或状态标志。
这种指示器可以设在系统的本地缓存中,也可以设在子系统中的缓存模块中。关键的是,与产生一个典型I / O请求所用的时间相比,检查指示器所需的时间要快。
当需要从缓存中更新数据时,系统首先检查状态标志,以决定是否需要从子系统中重载数据。如果状态标志指示数据还没有过时,则系统可以开始更新数据,然后设置适当的指示器标志,以便其他系统知道它们拥有的数据拷贝已经过时。当其他系统得知它们的数据已经过时,可以立即重载数据或者等到有I / O操作请求时才进行重载。
IBM Parallel Sysplex Coupling Facility所采用的机制就有点类似于上述方法。C o u p l i n gF a c i l i t y采用一个全局的缓存,用于跟踪每一个系统中缓存里的数据。每一个系统保持一个本地的缓存指示器,用来代表保存在缓存中的数据。这些指示器位被称为本地状态向量,用来表示数据是否过时。系统与Coupling Facility进行有关它们正在更新数据内容的通信。当C o u p l i n g F a c i l i t y接收到来自任何一个系统有关数据正在更新的消息时,它检查每一个相关的系统,看看它们的缓存中是否有该数据的拷贝。如果有,则将相应系统的本地状态向量位的状态设置为“过时”。因此,当相应的系统需要访问该数据时,它们可以识别出它们拥有的数据拷贝已经过时,需要从全局缓存或存储子系统中重新读取它。图1 3 - 1 0示出了通过Coupling Facility通告缓存数据状态的过程。

Coupling Facility可以算是一个优秀的智能后端存储子系统,它能更新正在访问它的系统中的数据。它这种进行快速通信的能力是由像光纤路径这样的高速网络提供的,虽然对于C o u p l i n gF a c i l i t y来说,采用的是将在第1 4章中讨论的E S C O N。
另外,还有一些其他方法可以选用,这主要取决于所涉及系统的性能需求和体系结构。通常而言,这种缓存一致性的提高要求具有快速的处理和通信能力。此外,它还要求有一个全局实体(在上述例子中就是Coupling Facility)能够设置和改变正在访问它的系统中的数据。对于大多数存储体系结构来说,这种要求不易满足,因为它们的存储子系统只响应所服务系统的I / O请求。
图1 3 - 11 示出了用于开放系统的通用缓存一致性机制,它采用一个智能后端存储子系统作为一个全局缓存管理器
