IP Library Granted Patent US 12,353,402
Granted Patent B2
US 12,353,402 · App. 17/933,372 · Granted Jul 8, 2025

Generating scalability scores for tenants using performance metrics

Inventors: Alok K. Patel (Fremont, CA); Amol Suresh Hardikar (Greenbrae, CA); Paymon Teyer (San Ramon, CA); Karishma Kishore Lalwani (Woodland Hills, CA)
Assignee: Salesforce, Inc.
G06F16/2379G06F11/3006G06F11/3409G06F16/24578
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 12,353,402
App. No.
17/933,372
Granted
Jul 8, 2025
Kind
B2
Abstract

Methods, systems, apparatuses, and computer program products are described. A multi-tenant database system may store a set of data logs indicating performance data for multiple tenants of the system. The system may calculate one or more aggregate performance metrics based on performance data for a tenant stored in the logs, where a performance metric of the one or more aggregate performance metrics may be based on design time data for the tenant, runtime data for the tenant, or both. The system may compare the one or more aggregate performance metrics to one or more performance thresholds defined for multiple tenants and may generate scalability scores corresponding to the one or more aggregate performance metrics for the tenant. The system may send, for display at a user interface of a user device operated by a user associated with the tenant, an indication of the generated scalability scores.

Claims (72)

1. A method for generating scalability scores for tenants at a multi-tenant database system, comprising:

storing a set of data logs indicating performance data for a plurality of tenants of the multi-tenant database system, the performance data tracking processing times, processor resources, or both for executing actions at the multi-tenant database system;

calculating, for a tenant of the plurality of tenants, one or more aggregate performance metrics based at least in part on respective performance data for the tenant stored in a subset of the set of data logs, wherein a performance metric of the one or more aggregate performance metrics is based at least in part on design time data for the tenant, runtime data for the tenant, or both;

comparing the one or more aggregate performance metrics to one or more performance thresholds defined for the plurality of tenants at the multi-tenant database system;

generating one or more scalability scores corresponding to the one or more aggregate performance metrics for the tenant based at least in part on the comparison of the one or more aggregate performance metrics to the one or more performance thresholds, a scalability score of the one or more scalability scores indicating an ability to satisfy the one or more performance thresholds at an increased quantity of users for the tenant in the multi-tenant database system;

sending, for display at a user interface of a user device, an indication of the one or more scalability scores, the user device operated by a user associated with the tenant; and

updating, at the multi-tenant database system, a database schema for the tenant based at least in part on a predicted change to the scalability score corresponding to the update to the database schema.

2. The method of claim 1 , further comprising:

predicting a second change to a second scalability score of the one or more scalability scores based at least in part on a change to code for the tenant, a change to a process of the tenant, or a combination thereof; and

sending, for display at the user interface of the user device, a suggested action corresponding to the change to the code, the change to the process, or the combination thereof and an indication of the predicted second change to the second scalability score corresponding to the suggested action.

3. The method of claim 2 , further comprising:

determining a severity level associated with the second scalability score, the severity level indicating a criticality of performing the suggested action; and

sending, for display at the user interface of the user device, an indication of the severity level.

4. The method of claim 2 , further comprising:

automatically performing the suggested action for the tenant based at least in part on the predicted second change to the second scalability score corresponding to the suggested action.

5. The method of claim 1 , further comprising:

updating a quantity of data objects in each batch for batch processing of a bulk operation for the tenant based at least in part on another predicted change to the scalability score in response to the updated quantity of data objects in each batch.

6. The method of claim 1 , further comprising:

predicting a second change to a second scalability score of the one or more scalability scores based at least in part on an update to code for the tenant, an update to a process of the tenant, or a combination thereof, and

rolling back the update to the code for the tenant, the update to the process of the tenant, or a combination thereof based at least in part on the predicted second change to the second scalability score.

7. The method of claim 1 , further comprising:

modifying an execution of code comprising a transaction for the multi-tenant database system based at least in part on the scalability score of the one or more scalability scores; and

performing the transaction as an asynchronous job, a batch job, or both based at least in part on the modified execution of the code.

8. The method of claim 1 , further comprising:

determining a tenant-specific process performed for the tenant based at least in part on the one or more aggregate performance metrics; and

sending, for display at the user interface of the user device, a suggested action based at least in part on the tenant-specific process and the scalability score of the one or more scalability scores.

9. The method of claim 1 , further comprising:

calculating, for a second tenant of the plurality of tenants, one or more second aggregate performance metrics based at least in part on second performance data for the second tenant stored in a second subset of the set of data logs, wherein a second performance metric of the one or more second aggregate performance metrics is based at least in part on second design time data for the second tenant, second runtime data for the second tenant, or both;

comparing the one or more second aggregate performance metrics to the one or more performance thresholds defined for the plurality of tenants at the multi-tenant database system; and

generating one or more second scalability scores corresponding to the one or more second aggregate performance metrics for the second tenant based at least in part on comparing the one or more second aggregate performance metrics to the one or more performance thresholds.

10. The method of claim 1 , further comprising:

receiving an updated performance threshold for the multi-tenant database system; and

updating the one or more performance thresholds defined for the plurality of tenants in response to the updated performance threshold.

11. The method of claim 1 , further comprising:

calculating, for the tenant of the plurality of tenants, one or more updated aggregate performance metrics based at least in part on updated performance data for the tenant stored in the subset of the set of data logs, wherein an updated performance metric of the one or more updated aggregate performance metrics is based at least in part on the design time data for the tenant, the runtime data for the tenant, or both;

additionally comparing the one or more updated aggregate performance metrics to the one or more performance thresholds; and

generating one or more updated scalability scores corresponding to the one or more updated aggregate performance metrics for the tenant based at least in part on the additional comparing.

12. The method of claim 1 , wherein calculating the one or more aggregate performance metrics comprises:

determining a time frame for analysis; and

calculating, for the tenant of the plurality of tenants, the one or more aggregate performance metrics based at least in part on a subset of the respective performance data for the tenant associated with activities performed during the time frame.

13. The method of claim 1 , further comprising:

determining one or more risk classifications corresponding to the one or more scalability scores, the one or more risk classifications indicating a quantity of data logs corresponding to the one or more aggregate performance metrics that fail to satisfy the one or more performance thresholds; and

sending, for display at the user interface of the user device, an indication of the one or more risk classifications.

14. The method of claim 1 , wherein:

the performance metric of the one or more aggregate performance metrics comprises a performance bottleneck, an inefficiency of scale, customer data, or any combination thereof; and

the one or more performance thresholds defined for the plurality of tenants at the multi-tenant database system correspond to one or more resource usage thresholds, one or more latency thresholds, one or more error thresholds, or a combination thereof.

15. The method of claim 1 , further comprising:

sorting, in the multi-tenant database system, the subset of the set of data logs for the tenant based at least in part on another predicted change to the scalability score in response to the sorting.

16. The method of claim 1 , further comprising:

identifying a plurality of conflicting integrations in the multi-tenant database system for the tenant based at least in part on the scalability score; and

disabling at least one conflicting integration of the plurality of conflicting integrations based at least in part on another predicted change to the scalability score in response to the disabling the at least one conflicting integration.

17. The method of claim 1 , further comprising:

migrating a portion of the set of data logs for the tenant to a different data store of the multi-tenant database system based at least in part on another predicted change to the scalability score in response to the migrating.

18. The method of claim 1 , further comprising:

updating a runtime for processing code of the tenant based at least in part on another predicted change to the scalability score in response to the updated runtime.

19. An apparatus for generating scalability scores for tenants at a multi-tenant database system, comprising:

at least one processor;

at least one memory coupled with the at least one processor; and

instructions stored in the at least one memory and executable by the at least one processor to cause the apparatus to:

store a set of data logs indicating performance data for a plurality of tenants of the multi-tenant database system, the performance data tracking processing times, processor resources, or both for executing actions at the multi-tenant database system;

calculate, for a tenant of the plurality of tenants, one or more aggregate performance metrics based at least in part on respective performance data for the tenant stored in a subset of the set of data logs, wherein a performance metric of the one or more aggregate performance metrics is based at least in part on design time data for the tenant, runtime data for the tenant, or both;

compare the one or more aggregate performance metrics to one or more performance thresholds defined for the plurality of tenants at the multi-tenant database system;

generate one or more scalability scores corresponding to the one or more aggregate performance metrics for the tenant based at least in part on the comparison of the one or more aggregate performance metrics to the one or more performance thresholds, a scalability score of the one or more scalability scores indicating an ability to satisfy the one or more performance thresholds at an increased quantity of users for the tenant in the multi-tenant database system;

send, for display at a user interface of a user device, an indication of the one or more scalability scores, the user device operated by a user associated with the tenant; and

update, at the multi-tenant database system, a database schema for the tenant based at least in part on a predicted change to the scalability score corresponding to the update to the database schema.

20. A non-transitory computer-readable medium storing code for generating scalability scores for tenants at a multi-tenant database system, the code comprising instructions executable by a processor to:

store a set of data logs indicating performance data for a plurality of tenants of the multi-tenant database system, the performance data tracking processing times, processor resources, or both for executing actions at the multi-tenant database system;

calculate, for a tenant of the plurality of tenants, one or more aggregate performance metrics based at least in part on respective performance data for the tenant stored in a subset of the set of data logs, wherein a performance metric of the one or more aggregate performance metrics is based at least in part on design time data for the tenant, runtime data for the tenant, or both;

compare the one or more aggregate performance metrics to one or more performance thresholds defined for the plurality of tenants at the multi-tenant database system;

generate one or more scalability scores corresponding to the one or more aggregate performance metrics for the tenant based at least in part on the comparison of the one or more aggregate performance metrics to the one or more performance thresholds, a scalability score of the one or more scalability scores indicating an ability to satisfy the one or more performance thresholds at an increased quantity of users for the tenant in the multi-tenant database system;

send, for display at a user interface of a user device, an indication of the one or more scalability scores, the user device operated by a user associated with the tenant; and

update, at the multi-tenant database system, a database schema for the tenant based at least in part on a predicted change to the scalability score corresponding to the update to the database schema.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2022
From: PATEL, ALOK K.; HARDIKAR, AMOL SURESH; TEYER, PAYMON; LALWANI, KARISHMA KISHORE
To: SALESFORCE, INC.
Reel/Frame 061140/0497 →
Continuity (2)
Provisional Application 63261394 · Sep 20, 2021
Related Publication 20230089783A1 · Mar 23, 2023
References Cited (10)
US 10776241B1 · Christensen · 2020 [cited by examiner]
US 11226964B1 · Cairney · 2022 [cited by examiner]
US 20130254384A1 · Wray · 2013 [cited by examiner]
US 20140201838A1 · Varsanyi · 2014 [cited by examiner]
US 20170353477A1 · Faigon · 2017 [cited by examiner]
US 20210042180A1 · Sutton · 2021 [cited by examiner]
US 20210141900A1 · Brown · 2021 [cited by examiner]
US 20210165688A1 · Reyes · 2021 [cited by examiner]
US 20220215010A1 · Dash · 2022 [cited by examiner]
US 20230053592A1 · Myron · 2023 [cited by examiner]