US 12,292,833 B2
System and method for cache invalidation
Michael Gerard Jaskiewicz, Urbandale, IA (US); Sarah Barnes Atlas, Austin, TX (US); Mukesh Chowdhary, Round Rock, TX (US); and Lloyd Douglas Forrest, Austin, TX (US)
Assigned to OPEN TEXT SA ULC, Halifax (CA)
Filed by Open Text SA ULC, Halifax (CA)
Filed on Jul. 19, 2023, as Appl. No. 18/355,346.
Application 18/355,346 is a continuation of application No. 17/509,942, filed on Oct. 25, 2021, granted, now 11,775,436.
Application 17/509,942 is a continuation of application No. 16/146,541, filed on Sep. 28, 2018, granted, now 11,157,410, issued on Oct. 6, 2021.
Claims priority of provisional application 62/565,761, filed on Sep. 29, 2017.
Prior Publication US 2023/0367714 A1, Nov. 16, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 12/084 (2016.01); G06F 12/123 (2016.01); G06F 16/00 (2019.01); G06F 16/957 (2019.01); H04L 67/02 (2022.01); H04L 67/568 (2022.01)
CPC G06F 12/084 (2013.01) [G06F 12/123 (2013.01); G06F 16/00 (2019.01); G06F 16/9574 (2019.01); H04L 67/02 (2013.01); H04L 67/568 (2022.05); G06F 2212/683 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A cache invalidation system comprising:
a repository configured to store objects which are publishable to a plurality of nodes;
an object cache configured to cache objects retrieved from the repository by a first node of the plurality of nodes;
a memory configured to store a broadcast cache invalidation queue shared by the plurality of nodes;
a processor coupled to the memory; and
a computer readable medium storing computer-executable instructions executable by the processor to:
receive notifications of operations to modify objects in the repository;
store cache invalidations corresponding to the operations in the broadcast cache invalidation queue, the cache invalidations identifying objects modified by the operations, each cache invalidation in the broadcast cache invalidation queue having a corresponding sequence identifier;
store an invalidation status usable by the first node to identify, from the broadcast cache invalidation queue, a last processed invalidation that was processed with respect to invalidating objects in the object cache, the invalidation status comprising a first corresponding sequence identifier corresponding to the last processed invalidation;
access, by the first node, the invalidation status to determine the first corresponding sequence identifier corresponding to the last processed invalidation;
determine, by the first node, a set of unprocessed invalidations from the broadcast cache invalidation queue that have corresponding sequence identifiers that are subsequent to the first corresponding sequence identifier determined from the invalidation status;
process, by the first node, the set of unprocessed invalidations to clear cached objects from the object cache; and
based on processing the set of unprocessed invalidations to clear cached objects from the object cache, update the invalidation status with a second corresponding sequence identifier, the second corresponding sequence identifier corresponding to a last invalidation from the set of unprocessed invalidations.