CPC G06F 16/9027 (2019.01) [G06F 12/0891 (2013.01); G06F 16/24552 (2019.01); G06F 16/90335 (2019.01)] | 17 Claims |
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.
|