IP Library Granted Patent US 11,347,646
Granted Patent B2
US 11,347,646 · App. 16/868,260 · Granted May 31, 2022

Method, device and computer program product for managing cache based on matching API

Inventors: Mengjia Liang (Chengdu, CN); Sandy Yu Yan (Chengdu, CN); Felix Fei Peng (Chengdu, CN)
Assignee: EMC IP HOLDING COMPANY LLC
G06F12/0862G06F2212/1016G06F2212/6024G06F2212/6026
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,347,646
App. No.
16/868,260
Granted
May 31, 2022
Kind
B2
Abstract

Embodiments of the present disclosure provide a method, device, and computer program product for managing cache. There is provided a method of managing a cache, comprising: receiving a current operation request from a user, data requested by the current operation request being to be duplicated to the cache; obtaining a plurality of historical operation requests of the user, the plurality of historical operation requests being received prior to the current operation request; determining a predicted operation request for the user based on the plurality of historical operation requests and the current operation request; and in accordance with determining that a type of an operation associated with the predicted operation request belongs to predetermined types, adjusting data in the cache based on the predicted operation request. With the embodiments of the present disclosure, it can be determined dynamically and intelligently which data should be cached, the speed of processing user's operation requests can be increased, and the memory space occupied by the cache can be reduced, thereby improving the system performance.

Claims (80)

1. A method of managing a cache, comprising:

receiving a current operation request from a user via an Application Programming Interface (API), wherein data, requested by the current operation request, is to be duplicated to the cache, and a name of the API indicating i) a type of an operation associated with the current operation request and ii) a storage location of the data requested by the current operation request;

obtaining a plurality of historical operation requests of the user, the plurality of historical operation requests being received prior to the current operation request;

determining a predicted operation request for the user based on the plurality of historical operation requests and the current operation request;

marking, based on the name of the API indicating the type of the operation associated with the current operation request, a range of API names in advance;

determining whether a first type, of a first operation associated with the predicted operation request, belongs to predetermined types, the determining whether the first type belongs to predetermined types comprises:

determining that the predicted operation request is associated with one of the marked range of API names;

and in response to determining that the predicted operation request is associated with the one of the marked range of the API names, adjusting data in the cache based on predicted operation request.

2. The method of claim 1 , wherein obtaining the plurality of historical operation

requests of the user comprises obtaining at least one of the following:

a name of the user, a role of the user, an identifier of a session initiated by the user, a timestamp when a historical operation request was received, a timestamp when data requested by a historical operation request was provided to the user, a type of an operation associated with a historical operation request, and a storage location of data requested by a historical operation request.

3. The method of claim 1 , wherein determining the predicted operation request for the user comprises determining

a storage location of data requested by the predicted operation request.

4. The method of claim 1 , wherein determining the predicted operation request for the user comprises:

classifying the plurality of historical operation requests using a classification model, a result of the classifying indicating a subsequent historical operation request of each of the plurality of historical operation requests; and

determining the predicted operation request based on the result of the classifying and the current operation request.

5. The method of claim 4 , wherein the classifying comprises:

sorting the plurality of historical operation requests according to receiving time points of the plurality of historical operation requests;

mapping the sorted historical operations requests to a plurality of coordinate points in a coordinate system, each of the plurality of coordinate points corresponding to a predetermined number of the sorted historical operation requests;

and the plurality of historical operation requests classified based on the plurality of coordinate points.

6. The method of claim 5 , wherein determining the predicted operation request based on the result of the classifying and the current operation request comprises:

mapping the current operation request to a first coordinate point in the coordinate system;

determining, from the plurality of historical operation requests, a historical operation request matching the current operation request based on the first coordinate point and the plurality of coordinate points; and

determining a subsequent historical operation request of the matching historical operation request as the predicted operation request.

7. The method of claim 5 , further comprising:

in response to receiving from the user a subsequent operation request immediately after the current operation request, determining whether the subsequent operation request is consistent with the predicted operation request; and

in accordance with determining that the subsequent operation request is inconsistent with the predicted operation request, obtaining an additional historical operation request or adjusting the predetermined number.

8. An electronic device, comprising:

at least one processing unit;

and at least one memory coupled to the at least one processing unit and storing instructions, which when executed by the at least one processing unit, cause the at least one processing unit to execute acts, the acts comprising:

receiving a current operation request from a user via an Application Programming Interface (API), wherein data, requested by the current operation request, is to be duplicated to a cache, and a name of the API indicating i) a type of an operation associated with the current operation request and ii) a storage location of the data requested by the current operation request;

obtaining a plurality of historical operation requests of the user, the plurality of historical operation requests being received prior to the current operation request;

determining a predicted operation request for the user based on the plurality of historical operation requests and the current operation request;

marking, based on the name of the API indicating the type of the operation associated with the current operation request, a range of API names in advance;

determining whether a first type, of a first operation associated with the predicted operation request, belongs to predetermined types, the determining whether the first type belongs to predetermined types comprises determining that the predicted operation request is associated with one of the marked range of API names;

and in response to determining that the predicted operation request is related to the marked range of the API names, adjusting data in the cache based on predicted operation request.

9. The device of claim 8 , wherein obtaining the plurality of historical operation requests of the user comprises obtaining at least one of the following:

a name of the user, a role of the user, an identifier of a session initiated by the user, a timestamp when a historical operation request was received, a timestamp when data requested by a historical operation request was provided to the user, a type of an operation associated with a historical operation request, and a storage location of data requested by a historical operation request.

10. The device of claim 8 , wherein determining the predicted operation request for the user comprises determining

a storage location of data requested by the predicted operation request.

11. The device of claim 8 , wherein determining the predicted operation request for the user comprises:

classifying the plurality of historical operation requests using a classification model, a result of the classifying indicating a subsequent historical operation request of each of the plurality of historical operation requests; and

determining the predicted operation request based on the result of the classifying and the current operation request.

12. The device of claim 11 , wherein the classifying comprises:

sorting the plurality of historical operation requests according to receiving time points of the plurality of historical operation requests;

mapping the sorted historical operations requests to a plurality of coordinate points in a coordinate system, each of the plurality of coordinate points corresponding to a predetermined number of the sorted historical operation requests;

and the plurality of historical operation requests classified based on the plurality of coordinate points.

13. The device of claim 12 , wherein determining the predicted operation request based on the result of the classifying and the current operation request comprises:

mapping the current operation request to a first coordinate point in the coordinate system;

determining, from the plurality of historical operation requests, a historical operation request matching the current operation request based on the first coordinate point and the plurality of coordinate points; and

determining a subsequent historical operation request of the matching historical operation request as the predicted operation request.

14. The device of claim 12 , wherein the acts further comprise:

in response to receiving from the user a subsequent operation request immediately after the current operation request, determining whether the subsequent operation request is consistent with the predicted operation request; and

in accordance with determining that the subsequent operation request is inconsistent with the predicted operation request, obtaining an additional historical operation request or adjusting the predetermined number.

15. A computer program product tangibly stored on a non-transitory computer storage medium and comprising machine-executable instructions, which when executed by a processor, cause the processor to perform acts, the acts comprising:

receiving a current operation request from a user via an Application Programming Interface (API), wherein data, requested by the current operation request, is to be duplicated to a cache, and a name of the API indicating i) a type of an operation associated with the current operation request and ii) a storage location of the data requested by the current operation request;

obtaining a plurality of historical operation requests of the user, the plurality of historical operation requests being received prior to the current operation request;

determining a predicted operation request for the user based on the plurality of historical operation requests and the current operation request;

marking, based on the name of the API indicating the type of the operation associated with the current operation request, a range of API names in advance;

determining whether a first type, of a first operation associated with the predicted operation request, belongs to predetermined types, the determining whether the first type belongs to predetermined types comprises:

determining that the predicted operation request is associated with one of the marked range of API names;

and in response to determining that the predicted operation request is related to the marked range of the API names, adjusting data in the cache based on predicted operation request.

16. The computer program product of claim 15 , wherein obtaining the plurality of historical operation requests of the user comprises obtaining at least one of the following:

a name of the user, a role of the user, an identifier of a session initiated by the user, a timestamp when a historical operation request was received, a timestamp when data requested by a historical operation request was provided to the user, a type of an operation associated with a historical operation request, and a storage location of data requested by a historical operation request.

17. The computer program product of claim 15 , wherein determining the predicted operation request for the user comprises determining

a storage location of data requested by the predicted operation request.

18. The computer program product of claim 15 , wherein determining the predicted operation request for the user comprises:

classifying the plurality of historical operation requests using a classification model, a result of the classifying indicating a subsequent historical operation request of each of the plurality of historical operation requests; and

determining the predicted operation request based on the result of the classifying and the current operation request.

19. The computer program product of claim 18 , wherein the classifying comprises:

sorting the plurality of historical operation requests according to receiving time points of the plurality of historical operation requests;

mapping the sorted historical operations requests to a plurality of coordinate points in a coordinate system, each of the plurality of coordinate points corresponding to a predetermined number of the sorted historical operation requests;

and the plurality of historical operation requests classified based on the plurality of coordinate points.

20. The computer program product of claim 19 , wherein determining the predicted operation request based on the result of the classifying and the current operation request comprises:

mapping the current operation request to a first coordinate point in the coordinate system;

determining, from the plurality of historical operation requests, a historical operation request matching the current operation request based on the first coordinate point and the plurality of coordinate points; and

determining a subsequent historical operation request of the matching historical operation request as the predicted operation request.

21. The computer program product of claim 19 , wherein the acts further comprise:

in response to receiving from the user a subsequent operation request immediately after the current operation request, determining whether the subsequent operation request is consistent with the predicted operation request; and

in accordance with determining that the subsequent operation request is inconsistent with the predicted operation request, obtaining an additional historical operation request or adjusting the predetermined number.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2020
From: LIANG, MENGJIA; YAN, SANDY YU; PENG, FELIX FEI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052591/0196 →
Priority Claims (1)
CN 202010014669.1 · Jan 7, 2020 · national
Continuity (1)
Related Publication 20210209024A1 · Jul 8, 2021