IP Library Granted Patent US 11,693,853
Granted Patent B2
US 11,693,853 · App. 16/670,753 · Granted Jul 4, 2023

Capture and replay of user requests for performance analysis

Inventors: Mohammad Jalali (San Francisco, CA); Shivakarthik Subramanyam (Dublin, CA); Aravind Mamidanna (San Francisco, CA)
Assignee: Salesforce, Inc.
G06F16/245G06F9/5072G06F9/544G06F11/3409G06F16/248G06F16/273G06F21/6218
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,693,853
App. No.
16/670,753
Granted
Jul 4, 2023
Kind
B2
Abstract

System and methods are described for performance analysis of a cloud computing environment. During a capture mode during a production use of a database system, the system captures user requests to access the cloud computing environment, asynchronously writes the user requests in one or more batches to a first database; and moves the user requests in one or more batches to a second database. During a replay mode during a performance analysis use of the cloud computing environment, the system reads the user requests from the second database and replays the user requests against the cloud computing environment in a first run, collects performance measurements for the first run, makes one or more changes to the cloud computing environment, reads the user requests from the second database and replays the user requests against the cloud computing environment in a second run, collects performance measurements for the second run, and compares performance measurements from the first run to performance measurements from the second run.

Claims (75)

1. A system, comprising:

a database system implemented using a server system, the database system configurable to cause:

determining that a capture mode is enabled;

obtaining a plurality of user requests that have been received via a cloud computing environment;

asynchronously writing the plurality of user requests in one or more batches to a first database such that the first database includes the plurality of requests;

moving the plurality of user requests in one or more batches from the first database to a second database;

reading at least a portion of the plurality of user requests from the second database;

processing the portion of the plurality of user requests against the cloud computing environment according to a first configuration in a first run;

collecting performance measurements for the first run;

processing the portion of the plurality of user requests against the cloud computing environment according to a second configuration in a second run;

collecting performance measurements for the second run;

comparing the performance measurements from the first run to the performance measurements from the second run; and

analyzing the performance measurements from the first run and the performance measurements from the second run to determine one or more effects of changing a configuration of the cloud computing environment between processing of the portion of the plurality of user requests according to the first configuration in the first run and processing of the portion of the plurality of user requests according to the second configuration in the second run.

2. The system of claim 1 , the database system further configurable to cause:

asynchronously writing the user requests obtained from the cloud computing environment into a write buffer; and

writing the user requests from the write buffer into the first database.

3. The system of claim 1 , the second database including user requests having user data not stored in user requests in the first database.

4. The system of claim 1 , the one or more user requests each having a payload including one or more fields, the fields including one or more of: a session identifier (ID), cookie, security token, uniform resource identifier (URI), or query string.

5. The system of claim 1 , wherein the first database is a high-write-scale no-structured query language (NoSQL) database.

6. The system of claim 1 , wherein the second database is a SQL database.

7. The system of claim 4 , the database system further configurable to cause:

processing the portion of the plurality of user requests against the cloud computing environment according to the second configuration in the second run according to values of the fields of the corresponding payloads.

8. A computer-implemented method, comprising:

determining that a capture mode is enabled;

obtaining a plurality of user requests that have been received via a cloud computing environment;

asynchronously writing the plurality of user requests in one or more batches to a first database such that the first database includes the plurality of requests;

moving the plurality of user requests in one or more batches from the first database to a second database;

reading at least a portion of the plurality of user requests from the second database;

processing the portion of the plurality of user requests against the cloud computing environment according to a first configuration in a first run;

collecting performance measurements for the first run;

processing the portion of the plurality of user requests against the cloud computing environment according to a second configuration in a second run;

collecting performance measurements for the second run;

comparing the performance measurements from the first run to the performance measurements from the second run; and

analyzing the performance measurements from the first run and the performance measurements from the second run to determine one or more effects of changing a configuration of the cloud computing environment between processing of the portion of the plurality of user requests according to the first configuration in the first run and processing of the portion of the plurality of user requests according to the second configuration in the second run.

9. The method of claim 8 , comprising:

asynchronously writing the user requests obtained from the database system into a write buffer; and

writing the user requests from the write buffer into the first database.

10. The method of claim 8 , wherein the second database includes user requests having user data not stored in user requests in the first database.

11. The method of claim 8 , the one or more user requests each having a payload including one or more fields, the fields including one or more of: a session identifier (ID), cookie, security token, uniform resource identifier (URI), or query string.

12. The method of claim 8 , wherein the first database is a high-write-scale no-structured query language (NoSQL) database.

13. The method of claim 8 , wherein the second database is a SQL database.

14. The method of claim 8 , comprising:

processing the portion of the plurality of user requests against the cloud computing environment according to the second configuration in the second run according to values of fields of corresponding payloads of the portion of the plurality of requests.

15. A tangible, non-transitory computer-readable storage medium having instructions encoded thereon which, when executed by a processing device, cause the processing device to:

determine that a capture mode is enabled;

obtain a plurality of user requests that have been received via a cloud computing environment;

asynchronously write the plurality of user requests in one or more batches to a first database such that the first database includes the plurality of requests;

move the plurality of user requests in one or more batches from the first database to a second database;

read at least a portion of the plurality of user requests from the second database;

process the portion of the plurality of user requests against the cloud computing environment according to a first configuration in a first run;

collect performance measurements for the first run;

process the portion of the plurality of user requests against the cloud computing environment according to a second configuration in a second run;

collect performance measurements for the second run;

compare the performance measurements from the first run to the performance measurements from the second run; and

analyze the performance measurements from the first run and the performance measurements from the second run to determine one or more effects of changing a configuration of the cloud computing environment between processing of the portion of the plurality of user requests according to the first configuration in the first run and processing of the portion of the plurality of user requests according to the second configuration in the second run.

16. The tangible, non-transitory computer-readable storage medium of claim 15 , including instructions encoded thereon which, when executed by a processing device, cause the processing device to:

asynchronously write the user requests obtained from the database system into a write buffer; and

write the user requests from the write buffer into the first database.

17. The tangible, non-transitory computer-readable storage medium of claim 15 , including instructions encoded thereon which, when executed by a processing device, cause the processing device to:

initialize the one or more user requests each having a payload including one or more fields, the fields including one or more of: a session identifier (ID), cookie, security token, uniform resource identifier (URI), or query string.

18. The method of claim 8 , wherein asynchronously writing the plurality of user requests includes writing associated replay information to the first database;

wherein the plurality of user requests includes moving the associated replay information from the first database to the second database;

wherein reading at least a portion of the plurality of user requests includes reading a corresponding portion of the associated replay information from the second database, the corresponding portion of the associated replay information including one or more authentication tokens;

wherein processing the portion of the plurality of user requests against the cloud computing environment according to a first configuration in a first run is performed using the corresponding portion of the associated replay information;

wherein processing the portion of the plurality of user requests against the cloud computing environment according to a second configuration in a second run is performed using the corresponding portion of the associated replay information.

19. The tangible, non-transitory computer-readable storage medium of claim 15 , wherein asynchronously writing the plurality of user requests includes writing associated replay information to the first database;

wherein the plurality of user requests includes moving the associated replay information from the first database to the second database;

wherein reading at least a portion of the plurality of user requests includes reading a corresponding portion of the associated replay information from the second database, the corresponding portion of the associated replay information including one or more authentication tokens;

wherein processing the portion of the plurality of user requests against the cloud computing environment according to a first configuration in a first run is performed using the corresponding portion of the associated replay information;

wherein processing the portion of the plurality of user requests against the cloud computing environment according to a second configuration in a second run is performed using the corresponding portion of the associated replay information.

20. The system of claim 1 , wherein asynchronously writing the plurality of user requests includes writing associated replay information to the first database;

wherein the plurality of user requests includes moving the associated replay information from the first database to the second database;

wherein reading at least a portion of the plurality of user requests includes reading a corresponding portion of the associated replay information from the second database, the corresponding portion of the associated replay information including one or more authentication tokens;

wherein processing the portion of the plurality of user requests against the cloud computing environment according to a first configuration in a first run is performed using the corresponding portion of the associated replay information;

wherein processing the portion of the plurality of user requests against the cloud computing environment according to a second configuration in a second run is performed using the corresponding portion of the associated replay information.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0452 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2019
From: JALALI, MOHAMMAD; SUBRAMANYAM, SHIVAKARTHIK; MAMIDANNA, ARAVIND
To: SALESFORCE.COM, INC.
Reel/Frame 051166/0650 →
Continuity (1)
Related Publication 20210133186A1 · May 6, 2021