US 11,709,841 B2
Methods for updating reference count and shared objects in a concurrent system
Shu-Shang Sam Wei, Danville, CA (US); Shuaib Hasan Khwaja, Pleasanton, CA (US); and Pankaj Pradhan, Bangalore (IN)
Assigned to OPEN TEXT CORPORATION, Waterloo (CA)
Filed by Open Text Corporation, Waterloo (CA)
Filed on Feb. 8, 2022, as Appl. No. 17/667,167.
Application 17/667,167 is a continuation of application No. 15/431,225, filed on Feb. 13, 2017, granted, now 11,263,214.
Application 15/431,225 is a continuation of application No. 13/524,411, filed on Jun. 15, 2012, granted, now 9,569,356, issued on Feb. 14, 2017.
Prior Publication US 2022/0164355 A1, May 26, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 15/16 (2006.01); G06F 16/2455 (2019.01); G06F 12/02 (2006.01); G06F 9/38 (2018.01); G06F 16/22 (2019.01); G06F 16/28 (2019.01); H04L 67/568 (2022.01); H04L 67/1097 (2022.01); H04L 67/2885 (2022.01)
CPC G06F 16/24553 (2019.01) [G06F 9/3834 (2013.01); G06F 12/0261 (2013.01); G06F 16/22 (2019.01); G06F 16/24552 (2019.01); G06F 16/24562 (2019.01); G06F 16/284 (2019.01); H04L 67/1097 (2013.01); H04L 67/568 (2022.05); H04L 67/2885 (2013.01)] 10 Claims
OG exemplary drawing
 
1. A method for managing concurrent access to a shared resource:
establishing a plurality of concurrent sessions over a network between a plurality of clients and a content server, including establishing a first session between a first client and the content server;
providing a global cache;
populating the global cache from a data repository;
providing a plurality of session caches, each session cache from the plurality of session caches providing a cache for a corresponding session from the plurality of concurrent sessions, the plurality of session caches including a first session cache for the first session
populating the plurality of session caches from the global cache;
receiving a request from the first client for an object type;
searching for the object type in the first session cache;
based on a determination that the object type cannot be found in the first session cache, searching for the object type in the global cache;
based on a determination that the object type can be found in the global cache, placing a pointer in the session cache that points to the object type in the global cache and incrementing a session counter for tracking references to the object type across the plurality of session caches;
based on a determination that no instances of the object type are in use in the first session, decrementing the session counter for the object type;
incrementing a reference counter upon every instance of using a subtype of the object type in the first session;
decrementing the reference counter upon every instance of releasing the subtype from the first session; and
removing the object type from the global cache based on a determination that the session counter and the reference counter are both zero.