IP Library Granted Patent US 9,348,677
Granted Patent B2
US 9,348,677 · App. 13/657,635 · Granted May 24, 2016

System and method for batch evaluation programs

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 9,348,677
App. No.
13/657,635
Granted
May 24, 2016
Kind
B2
Abstract

A batching module that inspects call stacks within a stack evaluator to identify current expressions that can be evaluated in batch with other expressions. If such expressions are identified, the corresponding stacks are blocked from further processing and a batch processing request for processing the expressions is transmitted to the application server. The application server processes the expressions in batch and generates a value for each of the expressions. The blocked stacks are then populated with the values for the expressions.

Claims (43)

1. A computer-implemented method to batch evaluate a plurality of expressions, the method comprising:

analyzing a first expression to be evaluated within a call stack associated with a first instruction of a software routine, wherein the first instruction specifies the first expression, and analyzing a second expression to be evaluated within a different call stack;

determining whether to batch evaluate the first expression and the second expression based upon a first attribute;

wherein an attribute is one of: type of expression, number of inputs specified in the expression, or the type of operation to be performed by the expression;

if the first expression and the second expression should be batch evaluated based upon the first attribute, determining whether to batch evaluate the first expression, the second expression, and a third expression based upon a second attribute;

if the first expression, the second expression, and the third expression should be batch evaluated based upon the second attribute, causing the first expression, the second expression, and the third expression to be batch evaluated in an application server, wherein no individual expression from among a plurality of expressions is individually sent to the application server for evaluation;

receiving, from the application server, a different value for each of the first expression, the second expression, and the third expression that is generated when a batch processing request is processed by the application server;

populating the call stack with the received value for the first expression.

2. The method of claim 1 , wherein the different call stack is associated with a second instruction of the software routine or is associated with the first instruction of the software routine.

3. The method of claim 1 , wherein the first attribute is different than the second attribute.

4. The method of claim 1 , wherein the second attribute is included in a pre-determined list of characteristics associated with expressions that should be batch evaluated.

5. The method of claim 1 , further comprising determining that the third expression satisfies a third attribute, wherein the third attribute is the same or different than the first attribute.

6. The method of claim 4 , wherein the pre-determined list of characteristics includes a characteristic of an expression that is evaluated via a database call.

7. The method of claim 4 , wherein the pre-determined list of characteristics includes a characteristic of an expression that specifies a plurality of inputs.

8. The method of claim 1 , further comprising blocking the call stack from further processing after determining that the first expression and the second expression should be batch evaluated based upon the first attribute.

9. The method of claim 8 , further comprising unblocking the call stack after populating the call stack with the value for the first expression.

10. A non-transitory computer readable medium storing instruction that, when executed by a processor, cause the processor to batch evaluate a plurality of expressions, by performing the steps of:

analyzing a first expression to be evaluated within a call stack associated with a first instruction of a software routine, wherein the first instruction specifies the first expression, and analyzing a second expression to be evaluated within a different call stack;

determining whether to batch evaluate the first expression and the second expression based upon a first attribute;

wherein an attribute is one of: type of expression, number of inputs specified in the expression, or the type of operation to be performed by the expression;

if the first expression and the second expression should be batch evaluated based upon the first attribute, determining whether to batch evaluate the first expression, the second expression, and a third expression based upon a second attribute;

if the first expression, the second expression, and the third expression should be batch evaluated based upon the second attribute, causing the first expression, the second expression, and the third expression to be batch evaluated in an application server, wherein no individual expression from among a plurality of expressions is individually sent to the application server for evaluation;

receiving, from the application server, a different value for each of the first expression, the second expression, and the third expression that is generated when a batch processing request is processed by the application server;

populating the call stack with the received value for the first expression.

11. The computer readable medium of claim 10 , wherein the different call stack is associated with a second instruction of the software routine or is associated with the first instruction of the software routine.

12. The computer readable medium of claim 10 , wherein the first attribute is different than the second attribute.

13. The computer readable medium of claim 10 , wherein the second attribute is included in a pre-determined list of characteristics associated with expressions that should be batch evaluated.

14. The computer readable medium of claim 10 , further comprising determining whether to batch evaluate the third expression and at least a fourth expression based upon a third attribute, wherein the third attribute is the same or different than the first attribute.

15. The computer readable medium of claim 13 , wherein the pre-determined list of characteristics includes a characteristic of an expression that is evaluated via a database call.

16. The computer readable medium of claim 13 , wherein the pre-determined list of characteristics includes a characteristic of an expression that specifies a plurality of inputs.

17. The computer readable medium of claim 10 , further comprising blocking the call stack from further processing after determining that the first expression and the second expression should be batch evaluated based upon the first attribute.

18. The computer readable medium of claim 17 , further comprising unblocking the call stack after populating the call stack with the value for the first expression.

19. A computer system, comprising:

a memory; and

a processor configured to:

analyze a first expression to be evaluated within a call stack associated with a first instruction of a software routine, wherein the first instruction specifies the first expression, and analyze a second expression to be evaluated within a different call stack,

determine whether the first expression and the second expression should be batch evaluated based upon a first attribute,

wherein an attribute is one of: type of expression, number of inputs specified in the expression, or the type of operation to be performed by the expression,

when at least the first expression and the second expression should be batch evaluated based upon the first attribute, determine whether the first expression, the second expression, and a third expression should be batch evaluated based upon a second attribute,

when the first expression, the second expression, and the third expression should be batch evaluated based upon the second attribute, cause the first expression, the second expression, and the third expression to be batch evaluated in an application server, wherein no individual expression from among a plurality of expressions is individually sent to the application server for evaluation,

receive, from the application server, a different value for each of the first expression, the second expression, and the third expression that is generated when a batch processing request is processed by the application server,

populate the call stack with the received value for the first expression.

20. The computer system of claim 19 , wherein the first attribute is different than the second attribute.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2013
From: MARINELLI, EUGENE E., III; NAMARA, YOGY
To: PALANTIR TECHNOLOGIES, INC.
Reel/Frame 029984/0627 →