IP Library Granted Patent US 8,898,669
Granted Patent B2
US 8,898,669 · App. 11/830,195 · Granted Nov 25, 2014

Methods and systems for coordinated transactions

Inventors: Paul M. Dantzig (Scarsdale, NY); Arun Kwangil Iyengar (Yorktown Heights, NY); Francis Nicholas Parr (New York, NY); Gong Su (New York, NY)
Assignee: International Business Machines Corporation
G06F9/4881
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 8,898,669
App. No.
11/830,195
Granted
Nov 25, 2014
Kind
B2
Abstract

Automated techniques are disclosed for coordinating request or transaction processing in a data processing system. For example, a technique for handling requests in a data processing system comprises the following steps. A compound request comprising at least two individual requests of different types is received. An individual request r 1 of the compound request is placed on a queue for requests of type t 1 , wherein t 1 is the request type of r 1 . After r 1 has reached the front of the queue, it is determined if at least one individual request of said compound request can execute. The compound request is executed if it is determined that all individual requests of the compound request can execute.

Claims (37)

1. A method for handling requests in a data processing system, comprising the steps of:

providing a plurality of individual requests, wherein each individual request has a type;

providing a plurality of queues comprising at least one queue for each type of request, wherein each queue specifies an order for processing individual requests of the type corresponding to the queue which are placed on the queue;

receiving a compound request comprising a plurality of individual requests of different types;

selecting at least one individual request of the compound request, wherein the at least one selected individual request has a lower probability of being able to execute than individual requests of said compound requests not selected;

placing the at least one selected individual request of said compound request on a respective queue that corresponds to the type of the at least one selected individual request, wherein at least one individual request of said compound request is not selected and not placed on the plurality of queues; and

after the at least one selected individual request has reached the front of the respective queue,

determining if the at least one selected individual request of said compound request can execute; and

rejecting said compound request, if it is determined that the at least one selected individual request of said compound request cannot execute.

2. The method of claim 1 , further comprising storing information in persistent storage allowing system state to be consistently reconstructed if a failure occurs.

3. The method of claim 1 , further comprising:

if the compound request is rejected, periodically re-determining if the at least one selected individual request of said compound request can execute.

4. The method of claim 1 , further comprising:

in response to said compound request being rejected, sending information to a client indicating that the compound request has been rejected.

5. The method of claim 2 , wherein said information in persistent storage comprises information about individual requests in persistent logs corresponding to types of said individual requests.

6. The method of claim 1 , wherein the individual requests of said compound request include orders to buy or sell stocks or commodities and the type of a given individual request comprises the type of said stock or commodity of the given individual request.

7. A data processing system for handling requests, comprising:

a memory; and

a processor coupled to the memory and configured to:

provide a plurality of individual requests, wherein each individual request has a type;

provide a plurality of queues comprising at least one queue for each type of request, wherein each queue specifies an order for processing individual requests of the type corresponding to the queue which are placed on the queue;

receive a compound request comprising a plurality of individual requests of different types;

select at least one individual request of the compound request, wherein the at least one selected individual request has a lower probability of being able to execute than individual requests of said compound requests not selected;

place the at least one selected individual request of said compound request on a respective queue that corresponds to the type of the at least one selected individual request, wherein at least one individual request of said compound request is not selected and not placed on the plurality of queues; and

after the at least one selected individual request has reached the front of the respective queue,

determine if the at least one selected individual request of said compound request can execute; and

reject said compound request, if it is determined that the at least one selected individual request of said compound request cannot execute.

8. The data processing system of claim 7 , wherein said processor further stores information in persistent storage of the memory allowing system state to be consistently reconstructed if a failure occurs.

9. An article of manufacture for handling requests in a data processing system, the article comprising a non-transitory computer readable storage medium comprising one or more computer programs which, when executed by a computer, implement the steps of:

providing a plurality of individual requests, wherein each individual request has a type;

providing a plurality of queues comprising at least one queue for each type of request, wherein each queue specifies an order for processing individual requests of the type corresponding to the queue which are placed on the queue;

receiving a compound request comprising a plurality of individual requests of different types;

selecting at least one individual request of the compound request, wherein the at least one selected individual request has a lower probability of being able to execute than individual requests of said compound requests not selected;

placing the at least one selected individual request of said compound request on a respective queue that corresponds to the type of the at least one selected individual request, wherein at least one individual request of said compound request is not selected and not placed on the plurality of queues; and

after the at least one selected individual request has reached the front of the respective queue,

determining if the at least one selected individual request of said compound request can execute; and

rejecting said compound request, if it is determined that the at least one selected individual request of said compound request cannot execute.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2007
From: DANTZIG, PAUL M.; IYENGAR, ARUN KWANGIL; PARR, FRANCIS NICHOLAS; SU, GONG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 019911/0413 →
Continuity (1)
Related Publication 20090037913A1 · Feb 5, 2009