Patent ID: 7734582
Filing Date: 2010-06-08
Classification: G06F

Abstract:
1. An apparatus to synchronize cache data of cascading caches within a multi-tier system, the apparatus comprising: a storage device storing executable code; a processor executing the executable code, the executable code comprising a pre-synchronization module performing a step of receiving a first pre-synchronization call from an upstream node of an upstream tier coupled to an intermediate node of an intermediate tier, the first pre-synchronization call providing advance notice to the intermediate node of an impending synchronization call; the pre-synchronization module performing a step of preventing a second cache coupled to a downstream node of a downstream tier from caching data from a first cache coupled to the intermediate node in response to the receiving of the first pre-synchronization call while the first cache remains unlocked until locked in response to the receiving of a first synchronization call-back from the upstream node; the pre-synchronization module performing a step of sending a second pre-synchronization call from the intermediate node to the downstream node in response to the receiving of the first pre-synchronization call; the downstream node performing a step of sending a second pre-synchronization acknowledgement to the intermediate node in response to the receiving of the second pre-synchronization call; the pre-synchronization module performing a step of receiving the second pre-synchronization acknowledgement from the downstream node; a call-back module performing a step of sending a second synchronization call-back from the intermediate node to the downstream node in response to receiving the second pre-synchronization acknowledgement by the intermediate node; a locking module performing a step of locking the second cache in response to the receiving of the second synchronization call-back; a synchronization module performing a step of synchronizing the second cache with the first cache in response to locking the second cache; the locking module performing a step of unlocking the second cache in response to synchronizing the second cache with the first cache; the locking module performing a step of sending a first synchronization completion from the downstream node to the intermediate node in response to synchronizing the second cache with the first cache; the pre-synchronization module further performing a step of sending a first pre-synchronization acknowledgement from the intermediate node to the upstream node in response to the receiving of the synchronization completion; the upstream node performing a step of sending the first synchronization call-back to the intermediate node in response to the first pre-synchronization acknowledgement; the locking module performing a step of locking the first cache in response to the receiving of the first synchronization call-back from the upstream node; the synchronization module performing a step of synchronizing source data on the upstream node with cached data on the first cache in response to locking the first cache; the locking module performing a step of unlocking the first cache in response to synchronizing the source data; the locking module performing a step of sending a second synchronization completion from the intermediate node to the upstream node in response to synchronizing the source data with the cached data; the upstream module performing a step of sending a post synchronization call-back to the intermediate node in response to the receiving of the second synchronization completion; a post-synchronization module performing a step of receiving the post synchronization call-back at the intermediate node and allowing caching by the second cache in response to the receiving of the post synchronization call-back; the post-synchronization module performing a step of sending a post synchronization acknowledgment from the intermediate node to the upstream node; and the upstream node performing a step of allowing the first cache to cache data from the source data in response to the post synchronization acknowledgement.