# US 10,310,907 B1 · Computer system providing numeric calculations with less resource usage

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,310,907 B1
- Document ID: US10310907B1
- Status: Granted
- Kind: B1
- Application number: 15/977,939
- Filed: 2018-05-11
- Granted: 2019-06-04
- Earliest claimed: 2018-05-11
- Assignees: Xactly Corporation
- Applicants: Xactly Corporation
- Inventors: Gowri Shankar Ravindran; Prashanthi Ramamurthy; Kandarp Mahadev Desai
- Web page: https://patentgrep.com/patent/US10310907B1

## CPC

- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 16/2465: {Query processing support for facilitating data mining operations in structured databases}
- G06F 16/2471: {Distributed queries}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06F 17/10: Complex mathematical operations {(function generation by table look-up G06F1/03; evaluation of elementary functions by calculation G06F7/544)}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

A data processing method includes receiving a request to perform a calculation, identifying, based on the request, data items needed to perform the calculation and retrieving the data items from a data store, storing, in memory, the items, generating graphs for the calculation, wherein each graph comprises one or more nodes, each node comprising instructions to perform at least a portion of the calculation and at least one data item needed by the portion of the calculation, executing each of the graphs to generate a result for the calculation by traversing the graph and processing each node using the instructions of the node and the at least one data item of the node, wherein executing is performed without accessing the data store, and storing, in the data store, the result.

## Claims

### Claim 1

A data processing method providing an improvement in the efficiency of use of CPU, memory and storage resources in defining and executing complex digital numeric data calculations by computer, the method comprising:
receiving, from a client computing device and at a computing system, a request to perform a digital numeric calculation by computer;
identifying, based on the request, a plurality of stored digital data items that are needed to perform the calculation and retrieving the plurality of data items from a digital data store comprising one or more hard disk drives hosting a MapR JSON-based data store, the computer and data store comprising a multi-tenant system in which client data for different entities is stored together but subject to access control procedures;
storing, in digital computer memory, the plurality of data items;
generating a plurality of graphs for an in-memory calculation and storing the graphs in the digital computer memory, each graph of the plurality of graphs is for a particular entity among a plurality of different entities that are associated with tenants of a multi-tenant digital computer system, each of the graphs associated with a different user account, the graphs comprising a plurality of subsets, each of the subsets comprising two or more graphs for a particular entity, the user accounts corresponding to users who are employees of entities including the particular entity, wherein each graph of the plurality of graphs comprises one or more nodes, each node comprising executable program instructions to perform at least a portion of the calculation and at least one data item of the plurality of data items needed by the portion of the calculation, each edge of a graph representing a dependency of an associated node or nodes and guidance on an order of execution of nodes, the generating resulting in a digitally stored in-memory list of graphs;
traversing the in-memory list and using a computer-implemented graph traversal algorithm and executing each of the plurality of graphs based on input from an in-memory context to generate a result value for the calculation that is stored in the in-memory context by traversing the graph and processing each node using the instructions of the node and the at least one data item of the node, including performing the executing without accessing the data store;
the in-memory context including instructions or code to perform the calculation of the graph;
storing, in the data store, the result value.

### Claim 2 (depends on 1)

The method of claim 1, wherein two or more nodes of the one or more nodes for a particular graph are connected by edges that represent a dependency between the two nodes.

### Claim 3 (depends on 2)

The method of claim 2, wherein a node of the one or more nodes is dependent on another graph.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
determining a first graph of the plurality of graphs will execute on a first computing device and a second graph of the plurality of graphs will execute on a second computing device;
executing, in parallel, the first graph by the first computing device and the second graph by the second computing device.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
determining a first node of a particular graph of the plurality of graphs will execute on a third computing device and a second node of the particular graph of the plurality of graphs will execute on a fourth computing device;
executing, in parallel, the first node by the third computing device and the second node by the fourth computing device.

### Claim 6 (depends on 1)

The method of claim 1, wherein the data store is a distributed data store.

### Claim 7 (depends on 1)

The method of claim 1, wherein the computing system comprises a public cloud.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
causing displaying, on the client computing device, the result.

### Claim 9

A system comprising:
one or more server computers communicatively connected to a data store, the one or more server computers comprising one or more processors and electronic digital memory storing one or more sequences of instructions which, when executed by the one or more processors, cause the one or more processors to perform:
receiving, from a client computing device and at a computing system, a request to perform a digital numeric calculation by computer;
identifying, based on the request, a plurality of stored digital data items that are needed to perform the calculation and retrieving the plurality of data items from a digital data store comprising one or more hard disk drives hosting a MapR JSON-based data store, the computer and data store comprising a multi-tenant system in which client data for different entities is stored together but subject to access control procedures;
storing, in digital computer memory, the plurality of data items;
generating a plurality of graphs for an in-memory calculation and storing the graphs in the digital computer memory, each graph of the plurality of graphs is for a particular entity among a plurality of different entities that are associated with tenants of a multi-tenant digital computer system, each of the graphs associated with a different user account, the graphs comprising a plurality of subsets, each of the subsets comprising two or more graphs for a particular entity, the user accounts corresponding to users who are employees of entities including the particular entity, wherein each graph of the plurality of graphs comprises one or more nodes, each node comprising executable program instructions to perform at least a portion of the calculation and at least one data item of the plurality of data items needed by the portion of the calculation, each edge of a graph representing a dependency of an associated node or nodes and guidance on an order of execution of nodes, the generating resulting in a digitally stored in-memory list of graphs;
traversing the in-memory list and using a computer-implemented graph traversal algorithm and executing each of the plurality of graphs based on input from an in-memory context to generate a result value for the calculation that is stored in the in-memory context by traversing the graph and processing each node using the instructions of the node and the at least one data item of the node, including performing the executing without accessing the data store;
the in-memory context including instructions or code to perform the calculation of the graph;
storing, in the data store, the result value.

### Claim 10 (depends on 9)

The system of claim 9, wherein two or more nodes of the one or more nodes for a particular graph are connected by edges that represent a dependency between the two nodes.

### Claim 11 (depends on 10)

The system of claim 10, wherein a node of the one or more nodes is dependent on another graph.

### Claim 12 (depends on 9)

The system of claim 9, further comprising:
determining a first graph of the plurality of graphs will execute on a first computing device and a second graph of the plurality of graphs will execute on a second computing device;
executing, in parallel, the first graph by the first computing device and the second graph by the second computing device.

### Claim 13 (depends on 9)

The system of claim 9, further comprising:
determining a first node of a particular graph of the plurality of graphs will execute on a third computing device and a second node of the particular graph of the plurality of graphs will execute on a fourth computing device;
executing, in parallel, the first node by the third computing device and the second node by the fourth computing device.

### Claim 14 (depends on 9)

The system of claim 9, wherein the data store is a distributed data store.

### Claim 15 (depends on 9)

The system of claim 9, wherein the computing system comprises a public cloud.

### Claim 16 (depends on 9)

The system of claim 9, further comprising:
causing displaying, on the client computing device, the result.
