# US 10,768,974 B2 · Specifying an order of a plurality of resources in a transaction according to distance

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

- Number: US 10,768,974 B2
- Document ID: US10768974B2
- Status: Granted
- Kind: B2
- Application number: 15/986,442
- Filed: 2018-05-22
- Published: 2018-09-20
- Granted: 2020-09-08
- Earliest claimed: 2008-01-17
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Andrew Wilkinson; David John Vines
- Web page: https://patentgrep.com/patent/US10768974B2

## CPC

- G06F 9/466: {Transaction processing}
- G06F 16/1865: {Transactional file systems}
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method of ordering multiple resources in a transaction includes receiving a transaction for a plurality of resources and determining, for each resource, the work embodied by the transaction. The work includes at least one identified parameter relating to an operation for the resource. The method further may include specifying an order of the resources according to the determination of the work, committing the transaction, and invoking the resources in the selected order. Specifying the order of the resources may include specifying the resource to be invoked last. Alternatively, or additionally, specifying the order of the resources also may include specifying that each resource carrying out read-only work be invoked first.

## Claims

### Claim 1

A computer-based method comprising:
receiving a transaction for a plurality of resources;
determining, for each resource of the plurality of resources, work embodied by the transaction, the work comprising a distance parameter relating to an operation for the resource;
specifying, by a processor, an order of the plurality of resources according to respective distances of the plurality of resources in the context of the transaction;
upon specifying the order of the plurality of resources, committing the transaction from an application associated with the transaction to a transaction manager; and
upon committing the transaction, invoking each of the plurality of resources in the specified order.

### Claim 2 (depends on 1)

The method of claim 1, wherein specifying the order of the plurality of resources comprises specifying a resource of the plurality of resources to be invoked last.

### Claim 3 (depends on 1)

The method of claim 1, wherein specifying the order of the plurality of resources comprises specifying that a resource among the plurality of resources that is most distant be ordered last.

### Claim 4 (depends on 1)

The method of claim 1, wherein specifying the order of the plurality of resources comprises specifying that a resource of the plurality of resources that is local with respect to an associated system be ordered before a resource of the plurality of resources that is remote with respect to the associated system.

### Claim 5 (depends on 1)

The method of claim 1, wherein each of the respective distances indicates latency with respect to one of the plurality of resources.

### Claim 6 (depends on 1)

The method of claim 1, wherein committing the transaction comprises persistently storing information regarding an outcome of the transaction.

### Claim 7 (depends on 1)

The method of claim 1, wherein determining, for each resource of the plurality of resources, the work embodied by the transaction includes parsing a call to the resource, wherein the call to the resource is a direct communication to the resource from the application associated with the transaction.

### Claim 8 (depends on 7)

The method of claim 7, wherein determining, for each resource of the plurality of resources, the work embodied by the transaction includes, following parsing the call to the resource, determining whether the call is read-only.

### Claim 9

A computer-based system comprising:
a processor configured to:
receive a transaction for a plurality of resources;
determine, for each resource of the plurality of resources, work embodied by the transaction, the work comprising a distance parameter relating to an operation for the resource;
specify an order of the plurality of resources according to respective distances of the plurality of resources in the context of the transaction;
upon specifying the order of the plurality of resources, commit the transaction from an application associated with the transaction to a transaction manager; and
upon committing the transaction, invoke each of the plurality of resources in the specified order.

### Claim 10 (depends on 9)

The system of claim 9, wherein the processor, when specifying the order of the plurality of resources, is configured to specify a resource of the plurality of resources to be invoked last.

### Claim 11 (depends on 9)

The system of claim 9, wherein the processor, when specifying the order of the plurality of resources, is configured to specify that a resource among the plurality of resources that is most distant be ordered last.

### Claim 12 (depends on 9)

The system of claim 9, wherein the processor, when specifying the order of the plurality of resources, is configured to specify that a resource of the plurality of resources that is local with respect to the system be ordered before a resource of the plurality of resources that is remote with respect to the system.

### Claim 13 (depends on 9)

The system of claim 9, wherein each of the respective distances indicates latency with respect to one of the plurality of resources.

### Claim 14 (depends on 9)

The system of claim 9, wherein committing the transaction comprises persistently storing information regarding an outcome of the transaction.

### Claim 15

A computer program product on a non-transitory computer-readable medium, the product comprising computer-readable instructions, which, when loaded in and executed by a computer, cause the computer to perform steps of:
receiving a transaction for a plurality of resources;
determining, for each resource of the plurality of resources, work embodied by the transaction, the work comprising a distance parameter relating to an operation for the resource;
specifying an order of the plurality of resources according to respective distances of the plurality of resources in the context of the transaction;
upon specifying the order of the plurality of resources, committing the transaction from an application associated with the transaction to a transaction manager; and
upon committing the transaction, invoking each of the plurality of resources in the specified order.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein specifying the order of the plurality of resources comprises specifying a resource of the plurality of resources to be invoked last.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein specifying the order of the plurality of resources comprises specifying that a resource among the plurality of resources that is most distant be ordered last.

### Claim 18 (depends on 15)

The computer program product of claim 15, wherein specifying the order of the plurality of resources comprises specifying that a resource of the plurality of resources that is local with respect to an associated system be ordered before a resource of the plurality of resources that is remote with respect to the associated system.

### Claim 19 (depends on 15)

The computer program product of claim 15, wherein each of the respective distances indicates latency with respect to one of the plurality of resources.

### Claim 20 (depends on 15)

The computer program product of claim 15, wherein committing the transaction comprises persistently storing information regarding an outcome of the transaction.
