新聞中心
聯系我們
Contact us
Contact us
- 總部電話010-51727811
- 客服熱線400 779 6696
- 更多聯系信息
如何對共享數據使用緩存技術(二)
時間:2012-08-07 09:31 來源:飛客數據恢復 作者:飛客數據恢復工程師
解決上述難題的一種方法是在共享數據子系統中采用一個統一的緩存。不過,這雖然為一致性提供了單一的點,但是它有可能不能為某些應用提供所需的性能,這取決于多種因素。
如果不在一個子系統中使用單一的緩存,則需要采用另外一些方法,用來顯示與其他系統中緩存數據相關的信息狀態。一種方法是使用可用來代表緩存數據狀態的指示器或狀態標志。
這種指示器可以設在系統的本地緩存中,也可以設在子系統中的緩存模塊中。關鍵的是,與產生一個典型I/O請求所用的時間相比,檢查指示器所需的時間要快。
當需要從緩存中更新數據時,系統首先檢查狀態標志,以決定是否需要從子系統中重載數據。如果狀態標志指示數據還沒有過時,則系統可以開始更新數據,然后設置適當的指示器標志,以便其他系統知道它們擁有的數據拷貝已經過時。當其他系統得知它們的數據已經過時,可以立即重載數據或者等到有I/O操作請求時才進行重載。
IBMParallelSysplexCouplingFacility所采用的機制就有點類似于上述方法。CouplingFacility采用一個全局的緩存,用于跟蹤每一個系統中緩存里的數據。每一個系統保持一個本地的緩存指示器,用來代表保存在緩存中的數據。這些指示器位被稱為本地狀態向量,用來表示數據是否過時。系統與CouplingFacility進行有關它們正在更新數據內容的通信。當CouplingFacility接收到來自任何一個系統有關數據正在更新的消息時,它檢查每一個相關的系統,看看它們的緩存中是否有該數據的拷貝。如果有,則將相應系統的本地狀態向量位的狀態設置為“過時”。因此,當相應的系統需要訪問該數據時,它們可以識別出它們擁有的數據拷貝已經過時,需要從全局緩存或存儲子系統中重新讀取它。
另外,還有一些其他方法可以選用,這主要取決于所涉及系統的性能需求和體系結構。通常而言,這種緩存一致性的提高要求具有快速的處理和通信能力。此外,它還要求有一個全局實體(在上述例子中就是CouplingFacility)能夠設置和改變正在訪問它的系統中的數據。對于大多數存儲體系結構來說,這種要求不易滿足,因為它們的存儲子系統只響應所服務系統的I/O請求。
如果不在一個子系統中使用單一的緩存,則需要采用另外一些方法,用來顯示與其他系統中緩存數據相關的信息狀態。一種方法是使用可用來代表緩存數據狀態的指示器或狀態標志。
這種指示器可以設在系統的本地緩存中,也可以設在子系統中的緩存模塊中。關鍵的是,與產生一個典型I/O請求所用的時間相比,檢查指示器所需的時間要快。
當需要從緩存中更新數據時,系統首先檢查狀態標志,以決定是否需要從子系統中重載數據。如果狀態標志指示數據還沒有過時,則系統可以開始更新數據,然后設置適當的指示器標志,以便其他系統知道它們擁有的數據拷貝已經過時。當其他系統得知它們的數據已經過時,可以立即重載數據或者等到有I/O操作請求時才進行重載。
IBMParallelSysplexCouplingFacility所采用的機制就有點類似于上述方法。CouplingFacility采用一個全局的緩存,用于跟蹤每一個系統中緩存里的數據。每一個系統保持一個本地的緩存指示器,用來代表保存在緩存中的數據。這些指示器位被稱為本地狀態向量,用來表示數據是否過時。系統與CouplingFacility進行有關它們正在更新數據內容的通信。當CouplingFacility接收到來自任何一個系統有關數據正在更新的消息時,它檢查每一個相關的系統,看看它們的緩存中是否有該數據的拷貝。如果有,則將相應系統的本地狀態向量位的狀態設置為“過時”。因此,當相應的系統需要訪問該數據時,它們可以識別出它們擁有的數據拷貝已經過時,需要從全局緩存或存儲子系統中重新讀取它。
另外,還有一些其他方法可以選用,這主要取決于所涉及系統的性能需求和體系結構。通常而言,這種緩存一致性的提高要求具有快速的處理和通信能力。此外,它還要求有一個全局實體(在上述例子中就是CouplingFacility)能夠設置和改變正在訪問它的系統中的數據。對于大多數存儲體系結構來說,這種要求不易滿足,因為它們的存儲子系統只響應所服務系統的I/O請求。