IP Library › Granted Patent US 12,242,638
Granted Patent B2
US 12,242,638 · App. 18/162,131 · Granted Mar 4, 2025

Mechanisms to predict system resource consumption of transactions

Inventors: Arjun Kumar Sirohi (Uttarakhand, IN); Lakshman Martha (Chester Springs, PA); Sirisha Tummalapenta (Serilingampally, IN)
Assignee: Salesforce, Inc.
G06F21/6227G06F16/2379
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,242,638
App. No.
18/162,131
Granted
Mar 4, 2025
Kind
B2
Abstract

Techniques are disclosed pertaining to determining whether execution of a transaction will exceed a system resource threshold. A computer system stores a precomputed permissions data structure in association with particular data stored in a database. That precomputed data structure may be used to determine whether a user can access the particular data. The computer system may capture metric information that pertains to parameters involved in different types of transactions that can be performed to recompute the precomputed permissions data structure. Upon receiving a request to perform a transaction that involves recomputing the permissions data structure, the computer system, may determine, based on the metric information and the transaction's particular type, whether an execution of the transaction will exceed the system resource threshold. If the transaction exceeds the threshold, the computer system prevents the transaction from being executed and may provide suggestions to enable that transaction to be executed.

Claims (55)

1. A method for determining whether a transaction that includes recomputing a precomputed permissions data structure will exceed a system resource threshold, the method comprising:

storing, by a computer system, the precomputed permissions data structure in association with particular data stored in a database, wherein the precomputed permissions data structure is usable to determine whether a user can access the particular data when processing a data request that is directed at the particular data;

capturing, by the computer system, metric information that pertains to a set of parameters involved in different types of transactions that can be performed to recompute the precomputed permissions data structure;

receiving, by the computer system, an update request whose processing involves executing the transaction, wherein the transaction is of a particular one of the different types of transactions that can be performed to recompute the precomputed permissions data structure; and

determining, by the computer system based on the metric information and the particular type of the transaction, whether an execution of the transaction will exceed the system resource threshold.

2. The method of claim 1 , wherein the precomputed permissions data structure is a table that includes access rules for a set of users and is linked to a separate table having the particular data.

3. The method of claim 1 , further comprising:

in response to determining that the execution of the transaction will exceed the system resource threshold, the computer system:

preventing the execution of the transaction; and

providing, to an issuer of the update request, a notification that the execution of the transaction has been prevented, wherein the notification identifies one or more solutions to enable the transaction to be executed.

4. The method of claim 1 , wherein the database stores data for a plurality of tenants of the computer system, and wherein the metric information specifies, for a given one of the plurality of tenants, tenant-specific values for the set of parameters.

5. The method of claim 1 , further comprising:

executing, by the computing system, one or more test transactions of the particular type of transaction; and

as a part of executing the one or more test transactions, the computer system capturing benchmark metric information pertaining to a resource consumption for the particular type of transaction, wherein a particular set of parameters involved in the particular type of transaction are derivable from the benchmark metric information.

6. The method of claim 1 , wherein the transaction includes a group membership change operation that involves modifying a number of users that is included in a particular group that is permitted to access at least a portion of the particular data.

7. The method of claim 6 , wherein the metric information identifies a number of records that are managed by users in the particular group.

8. The method of claim 1 , wherein the system resource threshold corresponds to an amount of memory that is permitted by the computer system to be used when executing a given transaction.

9. The method of claim 1 , further comprising:

storing, by the computer system, limit metadata describing value limits for ones of the set of parameters; and

preventing, by the computer system, the execution of the transaction in response to determining that a value of a parameter associated with the transaction exceeds a value limit identified by the limit metadata for that parameter.

10. A non-transitory computer readable medium having program instructions stored thereon that are executable by a computer system to cause the computer system to perform operations comprising:

storing a precomputed permissions data structure in association with particular data stored in a database, wherein the precomputed permissions data structure is usable to determine whether a user can access the particular data when processing a data request that is directed at the particular data;

capturing metric information that pertains to a set of parameters involved in different types of transactions that can be performed to recompute the precomputed permissions data structure;

receiving an update request whose processing involves executing a transaction, wherein the transaction is of a particular one of the different types of transactions that can be performed to recompute the precomputed permissions data structure; and

determining based on the metric information and the particular type of the transaction, whether an execution of the transaction will exceed a system resource threshold.

11. The non-transitory computer readable medium of claim 10 , wherein the operations further comprise:

in response to determining that the execution of the transaction will exceed the system resource threshold:

preventing the execution of the transaction; and

providing, to an issuer of the update request, a notification that the execution of the transaction has been prevented, wherein the notification identifies one or more solutions to enable the transaction to be executed.

12. The non-transitory computer readable medium of claim 10 , wherein the operations further comprise:

executing, one or more test transactions of the particular type of transaction; and

as a part of executing the one or more test transactions, capturing benchmark metric information pertaining to a resource consumption for the particular type of transaction, wherein a particular set of parameters involved in the particular type of transaction are derivable from the benchmark metric information.

13. The non-transitory computer readable medium of claim 10 , wherein the operations further comprise:

storing limit metadata describing value limits for ones of the set of parameters; and

preventing the execution of the transaction in response to determining that a value of a parameter associated with the transaction exceeds a value limit identified by the limit metadata for that parameter.

14. The non-transitory computer readable medium of claim 10 , wherein the metric information specifies, for a given one of a plurality of tenants that are hosted by the computer system, values for the set of parameters that are specific to the given tenant.

15. The non-transitory computer readable medium of claim 10 , wherein the system resource threshold corresponds to an amount of processing capability that is permitted by the computer system to be used when executing a given transaction.

16. A system, comprising:

at least one processor; and

memory having program instructions stored thereon that are executable by the at least one processor to cause the system to perform operations comprising:

storing a precomputed permissions data structure in association with particular data stored in a database, wherein the precomputed permissions data structure is usable to determine whether a user can access the particular data when processing a data request that is directed at the particular data;

capturing metric information that pertains to a set of parameters involved in different types of transactions that can be performed to recompute the precomputed permissions data structure;

receiving an update request whose processing involves executing a transaction, wherein the transaction is of a particular one of the different types of transactions that can be performed to recompute the precomputed permissions data structure; and

determining based on the metric information and the particular type of the transaction, whether an execution of the transaction will exceed a system resource threshold.

17. The system of claim 16 , wherein the operations further comprise:

in response to determining that the execution of the transaction will exceed the system resource threshold:

preventing the execution of the transaction; and

providing, to an issuer of the update request, a notification that the execution of the transaction has been prevented, wherein the notification identifies one or more solutions to enable the transaction to be executed.

18. The system of claim 16 , wherein the operations further comprise:

executing one or more test transactions of the particular type of transaction; and

as a part of executing the one or more test transactions, capturing benchmark metric information pertaining to a resource consumption for the particular type of transaction, wherein a particular set of parameters involved in the particular type of transaction are derivable from the benchmark metric information.

19. The system of claim 16 , wherein the operations further comprise:

storing limit metadata describing value limits for ones of the set of parameters; and

preventing the execution of the transaction in response to determining that a value of a parameter associated with the transaction exceeds a value limit identified by the limit metadata for that parameter.

20. The system of claim 16 , wherein the metric information specifies, for a given one of a plurality of tenants that are hosted by the system, values for the set of parameters that are specific to the given tenant.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2023
From: SIROHI, ARJUN KUMAR; MARTHA, LAKSHMAN; TUMMALAPENTA, SIRISHA
To: SALESFORCE, INC.
Reel/Frame 062547/0578 →
Continuity (1)
Related Publication 20240256700A1 · Aug 1, 2024
References Cited (24)
US 11372654B1 · Battle · 2022 [cited by examiner]
US 11689534B1 · Smith · 2023 [cited by examiner]
US 11693979B2 · Biazetti · 2023 [cited by examiner]
US 11750616B2 · Chen · 2023 [cited by examiner]
US 11775687B2 · Chen · 2023 [cited by examiner]
US 20020124196A1 · Morrow · 2002 [cited by examiner]
US 20150101024A1 · Leggette · 2015 [cited by examiner]
US 20190361915A1 · Weaver et al. · 2019 [cited by applicant]
US 20200026579A1 · Bahramshahry · 2020 [cited by examiner]
US 20210064655A1 · Prasad · 2021 [cited by examiner]
US 20210141704A1 · Glass · 2021 [cited by examiner]
US 20210280287A1 · Mahmood · 2021 [cited by examiner]
US 20210342836A1 · Cella · 2021 [cited by examiner]
US 20210358032A1 · Cella · 2021 [cited by examiner]
US 20220084660A1 · Georgescu · 2022 [cited by examiner]
US 20220121633A1 · Quader · 2022 [cited by examiner]
US 20220229776A1 · Klarén · 2022 [cited by examiner]
US 20230078169A1 · Vallejo Urena · 2023 [cited by examiner]
US 20230164129A1 · Volini · 2023 [cited by examiner]
US 20230331351A1 · Moffat · 2023 [cited by examiner]
Securing Sales and Fusion Service, Section 3 Introduction to Role-Based Security for Sales and Service—Overview of Role-Based Access Control, Oracle (Copyright © 1994, 2023), 2 pages. [cited by applicant]
International Search Report and Written Opinion in PCT Appl. No. PCT/US2024/011956 mailed Apr. 9, 2024, 13 pages. [cited by applicant]
Poppe et al., “Moneyball : proactive auto-scaling in Microsoft Azure SQL database serverless”, Proceedings of the VLDB Endowment, vol. 15, No. 6, Jun. 22, 2022 (Jun. 22, 2022), pp. 1279-1287, XP093017804, New York, NY I… [cited by applicant]
Mozafari et al. “Performance and resource modeling in highly-concurrent OLTP workloads”, Proceedings of the 2013 international conference on Management of data, SIGMOD '13, Jan. 1, 2013 (Jan. 1, 2013), p. 301, XP0551416… [cited by applicant]