US 12,008,041 B2
Shared cache for multiple index services in nonrelational databases
Peng Hui Jiang, Beijing (CN); Xing Xing Shen, Beijing (CN); Guang Han Sui, Beijing (CN); Jun Su, Beijing (CN); and Hai Ling Zhang, Beijing (CN)
Assigned to International Business Machines Corporation, Armonk, NY (US)
Filed by International Business Machines Corporation, Armonk, NY (US)
Filed on Sep. 15, 2021, as Appl. No. 17/475,601.
Prior Publication US 2023/0081324 A1, Mar. 16, 2023
Int. Cl. G06F 16/903 (2019.01); G06F 12/0891 (2016.01); G06F 16/2455 (2019.01); G06F 16/901 (2019.01)
CPC G06F 16/9027 (2019.01) [G06F 12/0891 (2013.01); G06F 16/24552 (2019.01); G06F 16/90335 (2019.01)] 17 Claims
OG exemplary drawing
 
1. A computer-implemented method comprising:
receiving, by a processing unit, from a first tenant, a query to retrieve data from a nonrelational database system;
accessing, applying the processing unit, an index storage containing a shared index cache and a plurality of cache indexes, wherein each cache index of the plurality of cache indexes corresponds to a tenant in a plurality of tenants and the each cache index of the plurality of cache indexes further comprises an individual index specific to the corresponding tenant and a reference to the shared index cache and
determining, by the processing unit, that the index associated with the query is cached in the individual index cache that is specific to the first tenant when the index associated with the query is cached in the individual index cache;
responding to a cache penetration of the individual index cache that is specific to the first tenant by determining, by the processing unit, that the index associated with the query is cached in the shared index cache, wherein the shared index cache stores indexes for the plurality of tenants, when the index associated with the query is not cached in the individual index cache that is specific to the first tenant and the index associated with the query is cached in the shared index cache;
retrieving, by the processing unit, the result of the query based on the index in the individual index cache when the index associated with the query is stored in the individual index cache that is specific to the first tenant;
retrieving, by the processing unit, a result of the query based on the index in the shared index cache when the index associated with the query is not stored in the individual index cache that is specific to the first tenant; and
outputting, by the processing unit, the result of the query.